我需要在運行的碼頭集裝器中設置環境變量。我已經意識到在創建容器時設置環境變量的方式。迄今爲止,我發現沒有可用的簡單方法來執行此操作,而docker正在計劃添加新版本1.13。在運行碼頭集合器中設置環境變量
但是,我發現有些人能夠管理它現在不適合我。我嘗試以下方法,但我 -
docker exec -it -u=root test /bin/bash -c "export port=8090"
回聲不工作「出口端口= 8090」到/etc/bash.bashrc使用腳本,然後源它
docker exec -it test /bin/bash -c "source /etc/bash.bashrc"
配置整個事情在一個腳本並從主機運行它也沒有工作。當從主機運行腳本時,除了「export port = 8090」或「source /etc/bash.bashrc」或「source /root/.bashrc」,所有其他命令成功執行。
任何人都可以解釋爲什麼從主機源文件不能在碼頭容器中工作,即使我設置用戶(「 - u = root」)?任何人都可以幫我解決這個問題嗎?當我從容器中獲取文件時,它完美地工作。但在我的情況下,我不得不
注意從主機做到這一點:,我使用的碼頭工人1.12,並試圖以上在Ubuntu:16.04和Ubuntu:14.04
你怎麼知道ENV沒有設置?您是否嘗試過「docker exec -it mydocker bash」,然後嘗試在continer中使用:'printenv'?另外,我會嘗試首先使用第一條命令進入容器,然後設置env並運行源代碼。 – cen
我轉到容器(/ bin/bash)並檢查環境變量以確定變量是否存在。我應該提到,在我的情況下,我無法進入容器內部來源文件。忘記提到從容器內部採購完美。我編輯了我的問題。 –
你可以嘗試的另一件事是把命令放在一個bash文件中,用docker將文件複製到容器中,然後執行,或讓你的應用程序執行它。根據您的其他評論,找到一些其他配置腳本的方法可能是一個更好的主意。動態配置通常不是通過env vars完成的。 – cen