【发布时间】:2016-06-25 22:38:16
【问题描述】:
我有几个在 docker 容器(nginx、db、php、..)上运行的应用程序,它们与 docker-compose 连接在一起。现在我想使用 jenkins 在生产环境中构建这个应用程序。我不确定如何将 jenkins 容器与 nginx 连接并将其限制为 localhost。
nginx.conf
upstream jenkins {
server jenkins:8080;
}
sites-enabled/default.conf
server {
listen 80;
server_name jenkins.example.com;
location / {
proxy_pass http://jenkins;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
詹金斯 Dockerfile
FROM jenkins
ENV JENKINS_OPTS --httpListenAddress=172.17.0.1
docker-compose.yml
jenkins:
ports:
- "8080:8080"
nginx:
links:
- jenkins
ports:
- "80:80"
...
我收到 502 错误。当我将 --httpListenAddress 更改为 0.0.0.0 时,它可以工作,但不仅限于本地主机。 172.17.0.1 是 docker 网关。
【问题讨论】:
-
0.0.0.0 通常表示监听所有接口。你试过 127.0.0.1 吗?
-
是的,我试过没有成功。 Docker 监听 172.x.x.x
标签: nginx jenkins docker localhost