docker4drupal
docker4drupal copied to clipboard
Can't support network_mode configuration with nginx and apache
Describe the bug I am using a custom network to work one traefik for all different proyects.
I have the same problem with Apache and Nginx
Output of docker info
Client:
Debug Mode: false
Server:
Containers: 5
Running: 4
Paused: 0
Stopped: 1
Images: 5
Server Version: 19.03.5
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: b34a5c8af56e510852c35414db4c1f4fa6172339
runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
init version: fec3683
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 5.3.0-0.bpo.2-amd64
Operating System: Debian GNU/Linux 10 (buster)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 31.09GiB
Name: thor
ID: 5WOS:6FUN:AGCY:67EZ:5CKC:OP7A:FNQK:INTH:B4QL:IKGU:CTEL:VUQW
Docker Root Dir: /var/lib/docker
Debug Mode: false
Username: keopx
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No swap limit support
Contents of your docker-compose.yml
version: "3"
services:
mariadb:
image: wodby/mariadb:$MARIADB_TAG
container_name: "${PROJECT_NAME}_mariadb"
network_mode: traefik_default
stop_grace_period: 30s
environment:
MYSQL_ROOT_PASSWORD: $DB_ROOT_PASSWORD
MYSQL_DATABASE: $DB_NAME
MYSQL_USER: $DB_USER
MYSQL_PASSWORD: $DB_PASSWORD
php:
image: wodby/drupal-php:$PHP_TAG
container_name: "${PROJECT_NAME}_php"
network_mode: traefik_default
environment:
PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
DB_HOST: $DB_HOST
DB_PORT: $DB_PORT
DB_USER: $DB_USER
DB_PASSWORD: $DB_PASSWORD
DB_NAME: $DB_NAME
DB_DRIVER: $DB_DRIVER
PROJECT_NAME: ${PROJECT_NAME}
PHP_FPM_USER: wodby
PHP_FPM_GROUP: wodby
COLUMNS: 80 # Set 80 columns for docker exec -it.
volumes:
- ./:/var/www/html
nginx:
image: wodby/nginx:$NGINX_TAG
container_name: "${PROJECT_NAME}_nginx"
network_mode: traefik_default
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: $NGINX_VHOST_PRESET
# NGINX_DRUPAL_FILE_PROXY_URL: http://example.com
volumes:
- ./:/var/www/html
labels:
- "traefik.http.routers.${PROJECT_NAME}_nginx.rule=Host(`${PROJECT_BASE_URL}`)"
portainer:
image: portainer/portainer
container_name: "${PROJECT_NAME}_portainer"
network_mode: traefik_default
command: --no-auth -H unix:///var/run/docker.sock
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- "traefik.http.routers.${PROJECT_NAME}_portainer.rule=Host(`portainer.${PROJECT_BASE_URL}`)"
Contents of your .env
### PROJECT SETTINGS
PROJECT_NAME=drupalsolr
PROJECT_BASE_URL=drupalsolr.docker.localhost
DB_NAME=drupal
DB_USER=drupal
DB_PASSWORD=drupal
DB_ROOT_PASSWORD=password
DB_HOST=mariadb
DB_PORT=3306
DB_DRIVER=mysql
DB_PORT=3306
### --- MARIADB ----
MARIADB_TAG=10.4-3.7.6
### --- VANILLA DRUPAL ----
DRUPAL_TAG=8-4.17.1
### --- PHP ----
# Linux (uid 1000 gid 1000)
PHP_TAG=7.3-dev-4.15.0
### --- NGINX ----
NGINX_TAG=1.17-5.8.5
NGINX_VHOST_PRESET=drupal8
### OTHERS
ADMINER_TAG=4-3.9.2
APACHE_TAG=2.4-4.2.3
ATHENAPDF_TAG=2.10.0
DRUPAL_NODE_TAG=1.0-2.0.0
MEMCACHED_TAG=1-2.4.1
OPENSMTPD_TAG=6.0-1.6.3
RSYSLOG_TAG=latest
SELENIUM_CHROME_TAG=3.141
WEBGRIND_TAG=1-1.14.1
XHPROF_TAG=2.1.1
Create custom traefik_default network
docker network create -d bridge traefik_default --attachable
docker run --rm -d -p 80:80 -p 443:443 -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock --network traefik_default --name main_traefik traefik:v2.0 --api.insecure=true --providers.docker
Logs output docker-compose logs
Nginx error:
drupalsolr_nginx | nginx: [emerg] host not found in upstream "php:9000" in /etc/nginx/upstream.conf:2
drupalsolr_mariadb | Initializing database
drupalsolr_nginx exited with code 1
Apache error:
AH00898: DNS lookup failure for: php returned by
It works changing this line
From:
NGINX_BACKEND_HOST: php
To:
NGINX_BACKEND_HOST: "${PROJECT_NAME}_php"