将保pipe库与docker-compose文件一起使用
目前我正在使用docker-compose文件来设置我的开发/生产环境。 我正在使用环境variables来存储秘密,数据库凭据等。经过一番search,我发现保险柜可以用来保护凭据。 我尝试了几个与Vault的基本示例,但我仍然不知道如何将Vault与docker-compose文件结合使用。 有人能指点我一个正确的方法吗? 如果Vault不是docker-compose的一个很好的解决scheme,我可以使用什么机制来保护凭据,而不是将它们作为纯文本存储在环境中。
这是我当前在dev中使用Vault的docker-composeconfiguration,但是我在生产中使用了专用服务器(不是Docker)。
# docker_compose.yml version: '2' services: myvault: image: vault container_name: myvault ports: - "127.0.0.1:8200:8200" volumes: - ./file:/vault/file:rw - ./config:/vault/config:rw cap_add: - IPC_LOCK entrypoint: vault server -config=/vault/config/vault.json
如果必须重新构build容器,则卷装载可确保保存库configuration已保存。
要使用'文件'后端,为了使这个设置对于Docker / Git可移植,您还需要创build一个名为config
的目录,并将其放入名为vault.json
文件中:
# config/vault.json { "backend": {"file": {"path": "/vault/file"}}, "listener": {"tcp": {"address": "0.0.0.0:8200", "tls_disable": 1}}, "default_lease_ttl": "168h", "max_lease_ttl": "0h" }
笔记:
尽pipe在这个configuration中ROOT_TOKEN
是静态的(在容器构build之间不会改变),但是VAULT_TOKEN
为了VAULT_TOKEN
发出的任何生成的app_role
将在每次必须app_role
时被失效。
我发现当容器重新启动时,Vault有时会被密封。