Docker用env_file参数指定的环境variables在dockerfile中不工作
这是我docker-compose.yml
docker-compose build percona_dev
运行docker-compose.yml
文件的代码片段。
percona_dev: build: docker/percona dockerfile: percona-dev env_file: docker.env
我已经在docker.env
指定了这样的环境variables:
USERNAME=xxx PASSWORD=xxx DESKTOP_IP=192.168.1.1 PLAYBOOK_LOCATION=/path/to/location/
这是我的名为percona-dev
Dockerfile
的相关部分:
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”]
不幸的是,环境variables不能被识别,并且构build失败:
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:
我如何确保我可以运行构build而不暴露我的Dockerfile或我的图像的文件系统层历史中的敏感环境variables?
环境variables不适用于构build步骤。 看到这个build议更加明显的构成和这个function请求,以支持新的构build参数添加到docker1.9。
构build参数将会做你所需要的。