Estou tentando configurar um proxy nginx dentro do docker que ouvirá o tráfego da web e, em seguida, com base no tráfego de encaminhamento do virtualhosts para instâncias do differerat jenkins também em execução dentro dos contêineres do docker. Para orquestrar isso, Uso docker-compose.
Eu consegui:
- Inicie instâncias do jenkins e converse com elas diretamente
- Inicie o nginx e configure-o para atuar como um proxy para um servidor web em execução em outro host
Mas quando tento deixar o servidor nginx rotear o tráfego dentro do docker, não consigo fazê-lo funcionar, apenas obtendo erros de Gateway de 502 Bag e o folowing nos logs do nginx:
[error] 6#6: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.17.0.1, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8081/", host: "localhost:8080"
Partes relevantes do meu docker-compose.yml:
httpd: build: httpd ports: - "8080:8080" links: - "server_jenkins" - "clients_jenkins" restart: alwaysserver_jenkins: image: jenkins ports: - "8081:8080" restart: alwaysclients_jenkins: image: jenkins ports: - "8082:8080" restart: always
O httpd / Dockerfile se parece com isso:
FROM nginxRUN rm -rf /etc/nginxCOPY config /etc/nginx/
E partes relevantes do nginx.conf se parece com isso (apenas proxy de uma instância do jenkins):
http { server { listen 8080; server_name server.build.example.com; root /tmp; location / { proxy_pass http://127.0.0.1:8081; } } server { listen 8080; server_name clients.build.example.com; root /tmp; location / { proxy_pass http://127.0.0.1:8082; } }}
Tentei as seguintes variantes do primeiro url proxy_pass (e algumas outras que não me lembro):
- http://server_jenkins:8081
- http://172.18.0.3:8081 (número ip atribuído ao server_jenkins ao executar com --X-networking)
Ao executar com -- X-networking, mudei as instruções de link para container_name em docker-compose.yml
Versao:
- docker: 1.9.1, construir a34a1d5
- docker-compose: 1.5.2, construir 7240ff3
- Sistema operacional: Debian 8 (rodando dentro do Virtualbox)