Reputation: 179
i have a compose file. when i run, that working normally
services:
[...]
wordpress-1:
depends_on:
- database
image: wordpress:latest
expose:
- 5000
volumes:
- ./site1/:/var/www/html/
[...]
nginx:
container_name: nginx_
build:
context: ./services/nginx
dockerfile: Dockerfile-prod
ports:
- 80:80
depends_on:
- wordpress-1
networks:
- my-network
[...]
and nginx conf:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://wordpress-1:80;
proxy_redirect default;
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-Host $server_name;
}
}
But, after i separated it into 2 docker compose (one for wordpress-1 service, and one for nginx service) when i run compose file contain nginx, i got this error: [emerg] 1#1: host not found in upstream "wordpress-1"
can you help me? thank's
Upvotes: 1
Views: 1416
Reputation: 4037
Docker-compose by default creates a network per each set of services (e.g. per each docker-compose file).
If you really need to have separate docker-compose files, you can create a shared network between the services like this:
$ cat a/docker-compose.yml
version: '3.5'
services:
a:
image: alpine
command: sleep 9999
networks: ["mynet"]
networks:
mynet:
name: shared-net
$ cat b/docker-compose.yml
version: '3.5'
services:
b:
image: alpine
command: sleep 9999
networks: ["mynet"]
networks:
mynet:
name: shared-net
After starting each, you can ping from b to a:
$ docker exec -it b_b_1 ping -c 1 a_a_1
PING a_a_1 (172.21.0.3): 56 data bytes
64 bytes from 172.21.0.3: seq=0 ttl=64 time=0.081 ms
--- a_a_1 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.081/0.081/0.081 ms
It works between restarts, for example if you restart a container.
Please note, that if nginx can't find a host it's an emerg-error and nginx might stop completely - this might be a problem between service restarts (as dns resolution no longer works).
Upvotes: 1