我是Docker的新手,我很難根據需要設置Docker容器。我有一個nodejs應用程序在啓動時可以帶兩個參數。例如,我可以使用使用docker run命令將參數傳遞給Dockerfile中的CMD
node server.js 0 dev
或
node server.js 1 prod
到和之間的生產模式和開發模式切換確定是否應該打開羣集。現在,我想創建一個參數做類似的事情泊塢窗的形象,我可以迄今唯一能做的就是調整Dockerfile有一個線
CMD [ "node", "server.js", "0", "dev"]
和
docker build -t me/app .
建泊塢窗。
然後docker run -p 9000:9000 -d me/app
運行碼頭。
,但如果我想切換到PROD模式,我需要改變Dockerfile CMD是
CMD [ "node", "server.js", "1", "prod"]
,
,我需要殺老一個偵聽端口9000和重建圖像。 我希望我能有這樣的事情
docker run -p 9000:9000 environment=dev cluster=0 -d me/app
創建映像和運行用的NodeJS「環境」命令和「集羣」的論點,所以我並不需要改變Dockerfile和重建泊塢窗任何更多。我怎樣才能做到這一點?
如何在Docker文件CMD中使用ENV,你能舉個例子嗎? – Jaaaaaaay
@Jaaaaaaay'ENV'是您的'Dockerfile'中的聲明(請閱讀https://docs.docker.com/engine/reference/builder/#/env),然後將通過'docker run -e myvar = myvalue' – VonC
@Jaaaaaaay我編輯了答案來解決你的問題。 – VonC