Docker compose 无法在docker compose上设置文件机密密码
我想用docker compose访问一个秘密文件。我遵循许多教程,并复制了结构。容器已启动,但当我需要登录时,要输入的正确字符串是“/run/secrets/sec\u pgadmin\u default\u email”。我希望登录名是我的秘密文件中的一个:admin。在这个秘密文件pgadmin_default_email.txt中,只有admin一词。我不知道这个文件的结构是否良好。应该是字典还是别的什么Docker compose 无法在docker compose上设置文件机密密码,docker-compose,Docker Compose,我想用docker compose访问一个秘密文件。我遵循许多教程,并复制了结构。容器已启动,但当我需要登录时,要输入的正确字符串是“/run/secrets/sec\u pgadmin\u default\u email”。我希望登录名是我的秘密文件中的一个:admin。在这个秘密文件pgadmin_default_email.txt中,只有admin一词。我不知道这个文件的结构是否良好。应该是字典还是别的什么 version: '3.8' services: pgadmin4:
version: '3.8' services: pgadmin4:
build:
context: ./dockerfiles/
dockerfile: dockerfile_pgadmin4
image: img_pgadmin
container_name: cont_pgadmin4
ports:
- "80:80"
secrets:
- sec_pgadmin_default_email
- sec_pgadmin_default_password
environment:
- PGADMIN_LISTEN_PORT=80
- PGADMIN_DEFAULT_EMAIL=/run/secrets/sec_pgadmin_default_email
- PGADMIN_DEFAULT_PASSWORD=/run/secrets/sec_pgadmin_default_password
secrets:
sec_pgadmin_default_email:
file: ./.secrets/pgadmin_default_email.txt
sec_pgadmin_default_password:
file: ./.secrets/pgadmin_default_password.txt
PS我只使用命令
docker compose up-d
,而不使用Swarm之类的东西。我不定义外部秘密,我也不喜欢。是否可能?环境变量将设置为包含实际值的文件的路径。而不是实际值本身
例如,在Go中,您可以执行以下操作:
var pgAdminDefaultEmailFile = os.Getenv("PGADMIN_DEFAULT_EMAIL") // get the file
pgAdminDefaultEmailValue, err := ioutil.ReadFile(pgAdminDefaultEmailFile) // get the value
if err != nil {
log.Fatal(err)
}
pgAdminDefaultEmail = string(pgAdminDefaultEmailValue) // parse out the value