在Docker鏡像的編譯階段,我想爲每個後續的「RUN」命令自動設置一些環境變量。Docker Ubuntu環境變量
但是,我想從docker conatiner中設置這些變量,因爲設置它們取決於一些內部邏輯。
使用dockerfile「ENV」命令並不好,因爲它不能依賴於內部邏輯。 (它不能依賴在碼頭集裝箱內運行的命令)
通常(如果這不是碼頭)我會設置我的〜/ .profile文件。但是,docker不會在非交互式shell中加載此文件。
所以他們時刻我必須與運行每個搬運工人運行命令:
RUN bash -c "source ~/.profile && do_something_here"
然而,這是非常繁瑣(和不潔的)時,我有這個,我想運行bash命令每次都重複。是否有其他的「配置文件」文件可以使用。
我在我的問題中闡述了確定變量值的邏輯是在容器內運行的。因此,您的提議意味着我需要更改conainer內的dockerfile?我不認爲這是可能的... – eshalev
上述方法是可能的,我已經使用它,如果你沒有任何邏輯來設置env變量,另一個方法,如果你有一個邏輯正在'CMD'執行腳本所以每次啓動容器時,腳本都會被執行,並且env會根據邏輯進行設置,例如運行一個tomcat應用程序使腳本像'#!/ bin/ash或者打開你的邏輯腳本&&/path/of/tomcat/catalina。 sh把這個腳本放在CMD中 – Vignajeth