【发布时间】:2019-01-07 21:51:57
【问题描述】:
我正在尝试使用 sed 将 nginx.conf 中的文本“localhost”替换为我的 docker 主机的 IP 地址(仅供参考。在本地使用 docker 机器,它在 192.168.99.100 上运行 docker)。
我的 nginx Dockerfile 如下所示:
FROM nginx:alpine
ARG DOCKER_HOST
COPY ./nginx.conf /etc/nginx/nginx.conf
RUN sed -i 's/localhost/${DOCKER_HOST}/g' /etc/nginx/nginx.conf
EXPOSE 80
我的 nginx.conf 文件如下所示(注意:为简单起见,大部分已删除)
http {
sendfile on;
upstream epd {
server localhost:8080;
}
# ...
}
我希望“localhost”被“192.168.99.100”取代,但它实际上被“${DOCKER_HOST}”取代。这会导致错误
在上游“${DOCKER_HOST}:8080”中找不到主机
我尝试了其他一些方法,但似乎无法正常工作。我可以确认 DOCKER_HOST 构建 arg 正在通过我的 docker compose 脚本进入 Dockerfile,因为我可以将其回显。
非常感谢您的任何回复...
【问题讨论】:
标签: sed dockerfile