我試圖在使用docker的localhost:8000上運行javascript應用程序。我想做的一部分是根據docker run命令交換一些配置文件,我想將一個環境變量傳遞到容器中,以便bash腳本可以使用它作爲參數。在啓動之前在NGINX泊塢窗容器中運行bash腳本
什麼我dockerfile正在尋找類似的是:
FROM nginx
COPY . /usr/share/nginx/html
CMD ["bash","/usr/share/nginx/html/runfile.sh"]
而且bash腳本是這樣的:
#!/bin/bash
if [ "$SECURITY_VERSION" = "OPENAM" ]; then
sed -i -e 's/localhost/openam/g' authConfig.js
fi
docker run -p 8000:80 missioncontrol:latest -e SECURITY_VERSION="TEST"
碼頭工人給了我一個異常說找不到-e exec命令。
但是,如果我更改dockerfile使用ENTRYPOINT而不是CMD,-e標誌有效,但Web服務器不啓動。
有什麼我在這裏失蹤?入口點被重寫或什麼?
編輯:
所以我已經更新了我dockerfile使用ENTRYPOINT ["bash","/usr/share/nginx/html/runfile.sh", ";", " nginx -g daemon off;"]
但泊塢窗容器仍然關閉。有什麼我失蹤?
你可能真的不想要'-e'。你也可能想'RUN'而不是'CMD',所以'RUN/usr/share/nginx/html/runfile.sh'? –
但是我想從碼頭運行命令中傳遞一個值,有沒有比-e更好的方法? 我曾考慮 '搬運工運行-p 8000:80 missioncontrol:最新/斌/慶典-c 「/usr/share/nginx/html/runfile.sh OPENAM」' 但Web服務器沒有啓動然後 – chiloutus
我在談論sed命令。 :P –