多个Docker从docker-compose .env文件构build参数
.env
-compose的.env
文件遇到了一个奇怪的问题。 我可以在我的.env文件中使用第一个variableskey = pair,但只能使用第一个variables。 这是我的文件夹结构
|- root | |- .env | |- docker-compose.yaml | |- service-1 | |- Dockerfile
.ENV:
GIT_TOKEN=c3e13c4e33935 DB_PWD=mypassword
泊坞窗,compose.yaml:
version: '3' web-server: container_name: service-1 image: sdc/service-1:0.1 build: context: ./service-1 args: - GIT_TOKEN=$GIT_TOKEN - DB_PWD=$DB_PWD
服务-1 / Dockerfile:
FROM node:boron ARG GIT_TOKEN ARG DB_PWD RUN git clone https://${GIT_TOKEN}@github.com/chrxn/sdc.git RUN echo {"database_password:" $DB_PWD } > crews.txt
问题是GIT_TOKENvariables工作正常,但DB_PWDvariables不是。 即使将GIT_TOKENvariables放在回显行中,令牌也会保存到一个文件中(所以我知道这不是一个回声/ bash插值问题)任何帮助,非常感谢。 我已经阅读了所有我能find的与Docker环境variables相关的东西。
注意:我修改了一些东西。 我的数据库密码不是mypassword,这不是一个真正的git回购
参考文献:
- .env文件
- ARG
- 类似的例子,但设置容器环境variables
- 因为.env和env_file太混乱了,所以引发了一个错误的问题
- 结合ARG和ENV
我真的想坚持到Docker生成参数,而不是环境variables,以便值不存储在容器的环境variables。
Facepalm🤦♀️ – 这是完美的工作。 我在我docker-compose.yaml
文件中将错误的服务放在了- DB_PWD=$DB_PWD
参数中。 我将在这里留下这个作为一个参考如何使用.env
构build参数.env
文件 – 并提醒我自己,我是一个白痴。 我很尴尬 – 100个SOF声望