在我的工作中,我经常设置由docker-compose文件控制的docker容器。通常我必须在这个文件中指定凭据,而我不知道如何正确地保护它们。如何做到这一点?
下面是一个示例:假设您希望使用用户jira和对应的密码设置一个数据库,这是另一个dockerized应用程序所需要的,并且您需要指定密码:version: '3.4'
services:
postgresql:
image: postgres:9.5-alpine
environment:
- 'POSTGRES_USER=jira'
- 'POSTGRES_PASSWORD=PasswordInClearTextSoFar'
networks:
- my_network
networks:
my_network:
driver: bridge
主机上的某些人可以看到用户是坏的,但是"PasswordInClearTextSoFar"是我最讨厌的事。我不知道如何解决这个问题。
是否可以在docker-compose文件中使用这里的系统环境变量?如果是,如何在Linux系统下正确地完成?
如何保护凭证
感谢和问候
对于这个主题的未来研究,一个可能的解决方案是使用秘密。这也是其他成员提议的。
作为对初始需求的引用,它将像下面这样:
version: '3.4'
services:
postgresql:
image: postgres:9.5-alpine
environment:
- POSTGRES_USER=/run/secrets/jira-user
- POSTGRES_PASSWORD=/run/secrets/jira-pass
secrets:
- jira-user
- jira-pass
networks:
- my_network
secrets:
jira-user:
file: ./secrets/jira_usr.txt
jira-pass:
file: ./secrets/jira_pwd.txt
networks:
my_network:
driver: bridge
在'secrets'文件夹中,我们将每个secret单独与secret一起保存。在jira_pwd.txt文件的情况下,它将包含:
PasswordInClearTextSoFar
编码好!¯_()_/¯