2017-04-05 498 views
0

entrypoint.sh這個樣子的:如何使用docker run使用sed命令替換nginx docker鏡像的.conf文件上的文本?

sed -i 's/HOST_NAME/'"$HOST_NAME"'/g' /usr/local/openresty/nginx/conf/conf.d/CONFIG_FILE.conf 

exec "[email protected]" 

CONFIG_FILE.conf是這樣的:

upstream gunicorn { 
    server $HOST_NAME; 
} 

我的搬運工運行命令如下:

docker run -e HOST_NAME=http://cnn.com sid:latest cat /usr/local/openresty/nginx/conf/conf.d/CONFIG_FILE.conf 

我試圖通過搬運工人運行通過cnn.com取代CONFIG_FILE.conf中的$HOST_NAME

任何幫助將不勝感激,我是新來的,所以如果我犯了愚蠢的錯誤,請耐心等待。

謝謝。

+0

使用本http://stackoverflow.com/questions/30288549/passing-variable-from-container-start-to-file – RomanPerekhrest

+0

這個羅馬人,我嘗試了這個鏈接的例子,我沒有使用env,我跟着設置​​sed命令的例子,我認爲它是一個語法問題,當我運行它時,我的$ HOST_NAME在CONFIG_FILE.conf被替換爲$ ,,我本來預計將被替換爲cnn.com,但它是空的 – governingcloud

回答

0

您可以在sed像#使用其他分隔比/

sed -i 's#$HOST_NAME#'"$HOST_NAME"'#g' /usr/local/openresty/nginx/conf/conf.d/CONFIG_FILE.conf 
相關問題