Docker 组合使用 env_file 参数指定的环境变量在 dockerfile 中不起作用
Docker compose environment variables specified with env_file parameter not working inside the dockerfile
这是我 docker-compose.yml
文件的片段,我是 运行 docker-compose build percona_dev
。
percona_dev:
build: docker/percona
dockerfile: percona-dev
env_file: docker.env
我在 docker.env
中指定了这样的环境变量:
USERNAME=xxx
PASSWORD=xxx
DESKTOP_IP=192.168.1.1
PLAYBOOK_LOCATION=/path/to/location/
这是我的 Dockerfile
的相关部分 percona-dev
:
FROM percona:5.6.24
MAINTAINER xxx
RUN apt-get update && apt-get install wget
RUN wget --ftp-user=$USERNAME --ftp-password=$PASSWORD ftp://$DESKTOP_IP/$PLAYBOOK_LOCATION/inventory/localhost -O /tmp/playbook/hosts
EXPOSE 3306
ENTRYPOINT [“/usr/bin/mysql”]
不幸的是环境变量没有被识别并且构建失败:
Step 5 : RUN wget --ftp-user=$USERNAME --ftp-password=$PASSWORD ftp://$DESKTOP_IP/$PLAYBOOK_LOCATION/inventory/localhost -O /tmp/playbook/hosts
---> Running in 3595b5ce9581
ftp:////inventory/localhost: Invalid host name.
Service 'percona_dev' failed to build:
如何确保 运行 构建时不会在我的 Dockerfile 或我的映像的文件系统层历史记录中暴露敏感环境变量?
环境变量不可用于构建步骤。请参阅 this proposal for making that more obvious in compose and this feature request 以支持添加到 docker 1.9 的新构建参数。
构建参数将满足您的需求。
这是我 docker-compose.yml
文件的片段,我是 运行 docker-compose build percona_dev
。
percona_dev:
build: docker/percona
dockerfile: percona-dev
env_file: docker.env
我在 docker.env
中指定了这样的环境变量:
USERNAME=xxx
PASSWORD=xxx
DESKTOP_IP=192.168.1.1
PLAYBOOK_LOCATION=/path/to/location/
这是我的 Dockerfile
的相关部分 percona-dev
:
FROM percona:5.6.24
MAINTAINER xxx
RUN apt-get update && apt-get install wget
RUN wget --ftp-user=$USERNAME --ftp-password=$PASSWORD ftp://$DESKTOP_IP/$PLAYBOOK_LOCATION/inventory/localhost -O /tmp/playbook/hosts
EXPOSE 3306
ENTRYPOINT [“/usr/bin/mysql”]
不幸的是环境变量没有被识别并且构建失败:
Step 5 : RUN wget --ftp-user=$USERNAME --ftp-password=$PASSWORD ftp://$DESKTOP_IP/$PLAYBOOK_LOCATION/inventory/localhost -O /tmp/playbook/hosts
---> Running in 3595b5ce9581
ftp:////inventory/localhost: Invalid host name.
Service 'percona_dev' failed to build:
如何确保 运行 构建时不会在我的 Dockerfile 或我的映像的文件系统层历史记录中暴露敏感环境变量?
环境变量不可用于构建步骤。请参阅 this proposal for making that more obvious in compose and this feature request 以支持添加到 docker 1.9 的新构建参数。
构建参数将满足您的需求。