使用docker-vault与kubernetes时,“mkdir vault:permission denied”

我成功部署了一个基于官方docker-vault映像的自定义容器,但使用vault init命令时出现以下错误:

 * failed to initialize barrier: failed to persist keyring: mkdir vault: permission denied 

我的Dockerfile是以下内容:

 FROM vault:0.8.3 WORKDIR /app ADD . /app RUN chmod +x ./configure_vault.sh CMD ["server", "-config=vault.conf"] 

我想要实现的是在容器启动后执行一个shell脚本来configurationVault。 我有一个像这样开始的configuration脚本:

 #!/bin/bash export VAULT_ADDR="http://127.0.0.1:8200" vault init -key-shares=1 -key-threshold=1 > vault_credentials ... // configure some default roles and policies 

为了执行它,我configuration了我的kubernetes yaml部署文件,如下所示:

 ... spec: containers: - image: // my image imagePullPolicy: Always name: vault ports: - containerPort: 8200 name: vaultport protocol: TCP # Enable mlock for the vault executable to stop # memory being swapped to disk so that secrets # don't get written to disk. securityContext: capabilities: add: - IPC_LOCK volumeMounts: - name: vault-volume mountPath: /vault/file lifecycle: postStart: exec: command: ["/bin/sh", "./configure_vault.sh"] volumes: - name: vault-volume persistentVolumeClaim: claimName: vault 

我可以看到保险库用户对/ vault文件夹有正确的权限,所以我似乎无法理解为什么目录创build失败。 我尝试给root用户授予root用户的权限,或者通过使用kubernetes exec来手动执行脚本来获得shell的容器,但是没有一个能够工作。

我不知道这是正确的方式进行,所以任何build议是值得欢迎的!