Я хочу настроить локальный DOCKER env для нескольких проектов в одной сети. Я хочу иметь основной docker -компонентный файл конфигурации, который создаст Nginx прокси и PHP контейнер И многие дочерние docker -составляют файлы со своими Nginx. Я хочу, чтобы все дочерние Nginx контейнеры слушали основной PHP контейнер. Но по какой-то причине дочерние Nginx контейнеры перестали работать с ошибкой host not found in upstream "app-php" in /etc/nginx/vhost.d/site.cong25
main docker-compose
:
version: '3.5'
services:
app-nginx_proxy:
build: ./nginx-proxy
image: app/nginx-proxy:latest
container_name: app-nginx_proxy
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
- appnetwork
app-php:
image: app/php:latest
container_name: app-php
build:
context: ./php-fpm
dockerfile: Dockerfile
expose:
- 9000
volumes:
- app_volume:/var/www/
networks:
- appnetwork
volumes:
app_volume:
driver: local
driver_opts:
type: bind
device: "$PWD/../services"
o: bind
networks:
appnetwork:
driver: bridge
и дочерними docker-compose
:
version: '3.5'
services:
app-admin-nginx:
build: ./nginx
image: app-admin/nginx:latest
container_name: app-admin-nginx
volumes:
- app_admin_volume:/var/www/app-admin
networks:
appnetwork:
aliases:
- app-admin.v2.local
environment:
- VIRTUAL_HOST=app-admin.v2.local
volumes:
app_admin_volume:
driver: local
driver_opts:
type: bind
device: "$PWD/../services/app-admin"
o: bind
networks:
appnetwork:
external: true
также, site.conf
:
server {
listen 80;
server_name app-admin.v2.local;
root /var/www/app-admin/web;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_log /var/log/nginx/abboom_admin_error.log;
access_log /var/log/nginx/abboom_admin_access.log;
error_page 404 /index.php;
sendfile off;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app-php:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}
location ~ /\.ht {
deny all;
}
}
Если я перенесу все конфиги в один файл docker-compose
, все будет работать нормально, но использование одного файла не будет гибким, так как я хочу добавить возможность для разработчики запускают только те приложения, которые им нужны, а не все приложения, которые у нас есть