2015-10-26 77 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

構建參數將做你所需要的。