Я пытаюсь соединить несколько файлов docker-compose с одним файлом nginx docker-compose.
Например, эта установка прекрасно работает (я создал сеть перед запуском):
(потерпите меня здесь. Я знаю, что этот пример избыточен, потому что у меня есть два сервера nginx)
#static_site/docker-compose.yml
version: '3'
services:
web:
image: nginx:stable-alpine
container_name: app_web_static
volumes:
- "./nginx.conf:/etc/nginx/conf.d/default.conf"
- "./web:/var/www/static_web"
ports:
- "8080:8080"
networks:
- test_network
#static_site/nginx.conf
server {
listen 8080;
location / {
root /var/www/static_web;
index index.html index.htm;
}
}
#nginx/docker-compose.yml
server {
listen 80;
server_name myapp.local;
#Docker DNS
resolver 127.0.0.11;
location / {
set $docker_host "app_web_static";
proxy_pass http://$docker_host:8080;
}
}
Я запускаюконтейнеры и все работает как положено.Мой сайт прокси через myapp.local
НО.Когда я изменяю свой статический веб-сайт на изображение WordPress, например:
#wordpress/docker-composer.yml
wordpress:
image: wordpress
container_name: app_web
links:
- db:mysql
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_PASSWORD: example
networks:
- test_network
- test_wordpress_db
db:
image: mysql:5.7
container_name: test.web.db
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- ./mysql/data:/var/lib/mysql
networks:
- test_wordpress_db
, я снова запускаю контейнеры (после обновления файла nginx .yml).Я получил запрос, зарегистрированный в моем терминале (контейнер nginx, что означает, что запрос является дескриптором), но как ошибка: test.nginx | [error] 5#5: *6 connect() failed (111: Connection refused) while connecting to upstream, client: 172.23.0.1, server: myapp.local, request: "GET / HTTP/1.1", upstream: "http://172.23.0.2:8080/", host: "myapp.local"
Дело в том, что приложение wordpress работает, когда я обращаюсь к нему из localhost:8080
.
Есть ли проблема с приложением WordPress в этой конфигурации?Он не может обнаружить мой хост или что-то?Как я могу решить эту проблему?