Dav*_*bec 5 nginx docker dockerfile
我有一个托管在Docker中的前端Web应用程序.后端已经存在,但它有"自定义IP"地址,所以我不得不更新我的本地/ etc/hosts文件来访问它.因此,从我的本地机器,我可以毫无问题地访问后端API.
但问题是Docker莫名其妙地无法解析这个"自定义IP",即使主机在容器中写入(image?)/ etc/hosts文件.
当Docker容器启动时,我看到了这个错误
$ docker run media-saturn:dev
2016/05/11 07:26:46 [emerg] 1#1: host not found in upstream "my-server-address.com" in /etc/nginx/sites/ms.dev.my-company.com:36
nginx: [emerg] host not found in upstream "my-server-address.com" in /etc/nginx/sites/ms.dev.my-company.com:36
Run Code Online (Sandbox Code Playgroud)
我在Dockerfile中通过命令更新/ etc/hosts文件,就像这样
# install wget
RUN apt-get update \
&& apt-get install -y wget \
&& rm -rf /var/lib/apt/lists/*
# The trick is to add the hostname on the same line as you use it, otherwise the hosts file will get reset, since every RUN command starts a new intermediate container
# it has to be https otherwise authentification is required
RUN echo "123.45.123.45 my-server-address.com" >> /etc/hosts && wget https://my-server-address.com
Run Code Online (Sandbox Code Playgroud)
当我进入机器检查/ etc/hosts的当前内容时,确实存在"123.45.123.45 my-server-address.com"这一行.
任何人都可以帮我解决这个问题吗?我是Docker newbee.
我已经解决了这个问题。有两件事在起作用。
一是它在本地如何工作,另一个是它在 Docker Cloud 中如何工作。
本地工作流程
docker build -t media-saturn:dev .docker run -it --add-host="my-server-address.com:123.45.123.45" -p 80:80 media-saturn:devDocker 云工作流程
将指令添加extra_host到您的堆栈文件中,如下所示
然后在Docker云中点击Redeploy,使更改生效
额外主机:
优化提示
node_modelues,bower_modules和tmptmp包含约 1.3GB 的小文件,因此忽略它会显着加快该过程| 归档时间: |
|
| 查看次数: |
2871 次 |
| 最近记录: |