【发布时间】:2020-08-11 10:39:56
【问题描述】:
我已经设置了 dockerfile 并使用 sed 更改配置文件。 该图像是一个简单的 rtmp restreamer。
dockerfile 中的行如下:
RUN sed -i 's/ytkey/${YOUTUBE_KEY}/g' /etc/nginx/nginx.conf &&\
sed -i 's/fbkey/${FACEBOOK_KEY}/g' /etc/nginx/nginx.conf
我一开始就设置了ENV
ENV YOUTUBE_KEY=default FACEBOOK_KEY=default
但在构建图像后,它不会将 ytkey 或 fbkey 替换为 default 而是输入一个字符串 ${YOUTUBE_KEY} .
我试过跑步
RUN sed -i 's/ytkey/\${YOUTUBE_KEY}/g' /etc/nginx/nginx.conf &&\
sed -i 's/fbkey/\${FACEBOOK_KEY}/g' /etc/nginx/nginx.conf
但结果相同。这是 sed 的问题(在 '' 中有环境)还是其他问题?是否有与 dockerfile 一起使用的 sed 替代方案? 或者我做事的方式完全错误?
【问题讨论】:
-
单引号可能是造成这种情况的原因,是的;尝试使用双引号。您应该能够在本地系统上的非 Docker shell 中演示相同的内容。
标签: docker sed environment-variables dockerfile