2015-10-26 73 views
2

这是我的docker-compose.yml文件的一个片段,我使用docker-compose build percona_dev运行。Docker组合环境变量指定env_file参数不工作在码头文件中

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/ 

这是我Dockerfilepercona-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或我的映像的文件系统层历史记录中暴露敏感环境变量?

回答

2

环境变量不适用于构建步骤。请参阅this proposal,以使撰写中更加明显,并且支持添加到docker 1.9的新构建参数this feature request

构建参数将做你所需要的。