Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker compose 无法在docker compose上设置文件机密密码_Docker Compose - Fatal编程技术网

Docker compose 无法在docker compose上设置文件机密密码

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:

我想用docker compose访问一个秘密文件。我遵循许多教程,并复制了结构。容器已启动,但当我需要登录时,要输入的正确字符串是“/run/secrets/sec\u pgadmin\u default\u email”。我希望登录名是我的秘密文件中的一个:admin。在这个秘密文件pgadmin_default_email.txt中,只有admin一词。我不知道这个文件的结构是否良好。应该是字典还是别的什么

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