2017-07-07 244 views
0

我想在Docker中設置動態env變量,但不知何故它重置。 我想設置具有價值的ENV變量:在Docker中設置動態Env變量

export EC2_Region=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone) 

,所以我不能只是使用ENVDockerfile因爲它的不是一成不變的。

我試着做一個init.sh並在Dockerfile中使用CMD["init.sh"]但是當我附加到docker進程時,env變量是空的。

我是碼頭工人,還在探索選項。

在此先感謝!

+0

我也試圖取代的.bash_profile和從init.sh腳本源,但沒有運氣 – OneWorld

+0

是否'搬運工運行 - -build-arg'可以做你想做的事情嗎? https://docs.docker.com/engine/reference/commandline/build/ – user2915097

回答

0

您可以使用ENTRYPOINT而不是CMD。

例Dockerfile:

FROM ubuntu:14.04 
COPY init.sh/
RUN chmod +x /init.sh 
ENTRYPOINT ["/init.sh"] 

init.sh:

export EC2_Region=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone) 
+0

由於某種原因不起作用。我嘗試過這個。沒有設置該名稱的ENV變量。 – OneWorld

+0

你能否提供你的Dockerfile和init腳本。上面的Dockerfile和init腳本爲我工作。 – Sreeni

+0

我可以通過在/etc/profile.d/中放置.sh腳本來使其工作,以使env變量保持不變。用你上面提到的方法,我開始的服務無法訪問env變量。 – OneWorld