Я создал проект drupal на основе docker4drupal [https://github.com/wodby/docker4drupal] [1] Я изменил docker -compose.yml внутри и разделил его на разные файлы. Это моя окончательная структура проекта, 3 репозитория, в каждом из которых есть файл docker -compose.yml
project-zak
---- docker-compose.yml
---- .env
BDD
---- docker-compose.yml
traefik
---- docker-compose.yml
. До этого уровня он работал отлично. Тем не менее, когда я попытался добавить новый проект "project-zak-2", похожий на "project-zak", он не сработал и затронул прежний проект.
вы найдете здесь содержимое docker -compose.yml для каждого репо, поэтому не могли бы вы помочь найти причину и корневую причину, и как я могу создать два проекта drupal на моем локальном хосте?
project-zak:
version: "3.3"
services:
php:
image: wodby/drupal:8-4.17.5
container_name: "php"
environment:
PHP_FPM_CLEAR_ENV: "no"
PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
DB_HOST: mariadb
DB_PORT: 3306
DB_USER: drupal
DB_PASSWORD: drupal
DB_NAME: drupal
DB_DRIVER: mysql
PHP_FPM_USER: wodby
PHP_FPM_GROUP: wodby
COLUMNS: 80
volumes:
- ./:/var/www/html
networks:
- backend
nginx:
image: wodby/nginx:1.17-5.8.11
container_name: "nginx"
depends_on:
- php
environment:
NGINX_STATIC_OPEN_FILE_CACHE: "off"
NGINX_ERROR_LOG_LEVEL: debug
NGINX_BACKEND_HOST: php
NGINX_SERVER_ROOT: /var/www/html/web
NGINX_VHOST_PRESET: drupal8
volumes:
- ./:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.http.routers.nginx-web-zakaria.rule=Host(`zakaria.project.localhost`)"
- "traefik.http.routers.nginx-web-zakaria.entrypoints=web"
networks:
- web
- backend
networks:
web:
external: true
backend:
external: true
BDD:
version: "3.3"
services:
mariadb:
image: wodby/mariadb:10.4-3.8.1
container_name: "mariadb"
stop_grace_period: 30s
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: drupal
MYSQL_USER: drupal
MYSQL_PASSWORD: drupal
volumes:
- ./mariadb-init:/docker-entrypoint-initdb.d # Place init .sql file(s) here.
- ./mysql:/var/lib/mysql # Use bind mount
networks:
- backend
networks:
backend:
external: true`
Traefik:
version: "3.3"
services:
traefik:
image: traefik:v2.0
restart: always
container_name: traefik
ports:
- "82:82" # <== http
- "8080:8080" # <== :8080 is where the dashboard runs on
- "443:443" # <== https
command:
- --api.insecure=true
- --api.dashboard=true
- --api.debug=true
- --log.level=DEBUG
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --providers.file.filename=/dynamic.yaml
- --providers.docker.network=web
- --entrypoints.web.address=:82
- --entrypoints.web-secured.address=:443
- --certificatesresolvers.mytlschallenge.acme.tlschallenge=true
- --certificatesresolvers.mytlschallenge.acme.email=theafkdeveloper@gmail.com
- --certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json
volumes:
- ./letsencrypt:/letsencrypt # <== Volume for certs (TLS)
- /var/run/docker.sock:/var/run/docker.sock # <== Volume for docker admin
- ./dynamic.yaml:/dynamic.yaml # <== Volume for dynamic conf file,
networks:
- web
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`monitor.example.com`)"
- "traefik.http.routers.api.service=api@internal"
networks:
web:
external: true
Porject-zak-2:
version: "3.3"
services:
php_2:
image: wodby/drupal:8-4.17.5
container_name: "php_2"
environment:
PHP_FPM_CLEAR_ENV: "no"
PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
DB_HOST: mariadb
DB_PORT: 3306
DB_USER: drupal
DB_PASSWORD: drupal
DB_NAME: drupal
DB_DRIVER: mysql
PHP_FPM_USER: wodby
PHP_FPM_GROUP: wodby
COLUMNS: 80
volumes:
- ./:/var/www/html
networks:
- backend
nginx_2:
image: wodby/nginx:1.17-5.8.11
container_name: "nginx_2"
depends_on:
- php_2
environment:
NGINX_STATIC_OPEN_FILE_CACHE: "off"
NGINX_ERROR_LOG_LEVEL: debug
NGINX_BACKEND_HOST: php_2
NGINX_SERVER_ROOT: /var/www/html/web
NGINX_VHOST_PRESET: drupal8
volumes:
- ./:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.http.routers.nginx-web-zakaria.rule=Host(`zakaria.project_2.localhost`)"
- "traefik.http.routers.nginx-web-zakaria.entrypoints=web"
networks:
- web
- backend
networks:
web:
external: true
backend:
external: true