2017-04-05 497 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 
相关问题