将秘密envvariables作为单独的数据容器存储在Docker中
我想在docker-compose中使用来自host OS的'secret'(密码等)envvariables。
我认为可以使用数据容器来实现这一点。 但它不起作用 – “没有文件存在”。 请咨询有什么不对,如果这样做可以。
泊坞窗,compose.yml
version: '2' services: web: build: . command: bundle exec puma env_file: .env environment: - RACK_ENV=production - RAILS_ENV=production volumes_from: - config ports: - "3000:3000" links: - db config: image: busybox volumes: - /myapp/config/.env:.env
我也尝试使用/myapp/config:/config
作为卷和/config/.env
作为env_file,但结果相同。
Dockerfile没有提及或以任何方式引用“config”或“.env”。
感谢您的回应。
撰写env文件
这个env_file
文件是由env_file
docker-compose
在本地读取的。 然后在运行时将variables传递给容器(如docker run -e
)。
web: build: . command: bundle exec puma env_file: ./.env environment: - RACK_ENV=production - RAILS_ENV=production ports: - "3000:3000" links: - db
代换
Compose也可以将环境variablesreplace到configuration中
如果您在运行SECRET_HOST_ENV_VARIABLE
docker-compose
时将主机上的SECRET_HOST_ENV_VARIABLE
设置为下面的环境定义
web: build: . command: bundle exec puma environment: - RACK_ENV=production - RAILS_ENV=production - SECRET_ENV_VARIABLE=${SECRET_HOST_ENV_VARIABLE} ports: - "3000:3000" links: - db
SECRET_ENV_VARIABLE
将在容器环境中可用。