【问题标题】:how to use sed command with docker run to replace text on a .conf file for nginx docker image?如何将 sed 命令与 docker run 一起使用来替换 .conf 文件中 nginx docker 映像的文本?
【发布时间】:2017-04-05 18:39:11
【问题描述】:

我的entrypoint.sh 看起来像这样:

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

exec "$@"

CONFIG_FILE.conf是这个:

upstream gunicorn {
    server $HOST_NAME;
}

我的 docker run 命令如下所示:

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

我正在尝试通过 docker run 传递 cnn.com 以替换 CONFIG_FILE.conf 中的 $HOST_NAME

任何帮助将不胜感激,我是新手,所以如果我犯了愚蠢的错误,请多多包涵。

谢谢。

【问题讨论】:

  • 这个罗马,我尝试了这个链接中的例子,我没有使用 env,我按照设置 sed 命令的例子,我认为这是一个语法问题,当我运行它时,我在 CONFIG_FILE.conf 中的 $HOST_NAME 被替换为 $ ,我本来希望被替换为 cnn.com ,但它显示为空

标签: nginx docker sed


【解决方案1】:

您可以在 sed 中使用除 / 之外的其他分隔符,例如 #

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 2021-02-12
    • 2018-02-23
    相关资源
    最近更新 更多