如何使用docker run使用sed命令替换nginx docker镜像的.conf文件上的文本?
问题描述:
我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
。
任何帮助将不胜感激,我是新来的,所以如果我犯了愚蠢的错误,请耐心等待。
谢谢。
答
您可以在sed像#
使用其他分隔比/
:
sed -i 's#$HOST_NAME#'"$HOST_NAME"'#g' /usr/local/openresty/nginx/conf/conf.d/CONFIG_FILE.conf
使用本http://*.com/questions/30288549/passing-variable-from-container-start-to-file – RomanPerekhrest
这个罗马人,我尝试了这个链接的例子,我没有使用env,我跟着设置sed命令的例子,我认为它是一个语法问题,当我运行它时,我的$ HOST_NAME在CONFIG_FILE.conf被替换为$ ,,我本来预计将被替换为cnn.com,但它是空的 – governingcloud