0
我想要部署一個映像。試想一下,Web應用程序在myapp:latest
圖像:使用配置文件進行映像部署
FROM debian:jessie
[...]
EXPOSE 80
CMD ["/bin/bash", "/bin/run_myapp.sh"]
凡/bin/run_myapp.sh負荷配置文件/etc/myapp.conf。 部署與3型動物的配置文件3個實例,我認爲做這樣的事情:
C1=$(docker run -d myapp)
C2=$(docker run -d myapp)
C3=$(docker run -d myapp)
...
docker cp myapp1.conf $C1:/etc/myapp.conf
docker cp myapp2.conf $C2:/etc/myapp.conf
docker cp myapp3.conf $C3:/etc/myapp.conf
但隨着這一想法,容器已經在運行,所以/bin/run_myapp.sh已經閱讀的/ etc/MYAPP .conf。如果我在啓動myapp之前啓動了docker cp
,則容器不存在。
什麼docker
解決方案可用於此部署方案?
我通常使用環境變量--env或--env-file。這樣,dev和prod之間就沒有代碼/腳本的變化。如果您必須使用配置文件,也許您可以將它們全部三個構建到映像中,並使用--env在運行時指定它的位置。 –