Попробовав простейшую конфигурацию docker-compose, приведённую на странице контейнера drupal, и убедившись в её работоспособности, решил сделать всё "правильно" (в кавычках, так как толком не понимаю, как оно - правильно).
Взял за основу эту статью, решил, что это то, что надо: DRUPAL живёт в одном контейнере с PHP, а доступом из вне управляет NGINX, который, в будущем, позволит мне прикрутить ещё один сайт к серверу.
Но вот проблема - вместо страницы установки DRUPAL, показывается ERR_CONNECTION_REFUSED.
ОС - CentOS Linux release 8.2.2004
Код docker-compose.yml:
services:
drupal:
image: drupal:8.9.1-fpm
container_name: drupal
depends_on:
- mysql
networks:
- internal
- external
volumes:
- drupal-data:/var/www/html
restart: unless-stopped
mysql:
image: mysql:8.0
container_name: mysql
command: --default-authentication-plugin=mysql_native_password
restart: unless-stopped
env_file: .env
!> volumes:
- db-data:/var/lib/mysql
networks:
- internal
webserver:
image: nginx:1.17.4
container_name: webserver
depends_on:
- drupal
restart: unless-stopped
ports:
- 80:80
volumes:
- drupal-data:/var/www/html
- /data/nginx-conf:/etc/nginx/conf.d
networks:
- external
networks:
external:
driver: bridge
internal:
driver: bridge
volumes:
drupal-data:
db-data:
Код nginx-conf:
listen 80;
listen [::]:80;
server_name test.loc www.test.loc;
index index.php index.html index.htm;
root /var/www/html;
location ~ /.well-known/acme-challenge {
allow all;
root /var/www/html;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
rewrite ^/core/authorize.php/core/authorize.php(.*)$ /core/authorize.php$1;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass drupal:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~ /\.ht {
deny all;
}
location = /favicon.ico {
log_not_found off; access_log off;
}
location = /robots.txt {
log_not_found off; access_log off; allow all;
}
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
}