У меня есть этот файл docker-compose для настройки среды разработки WordPress. Проблема в том, что согласно логам все работает правильно, но WordPress не загружается по URL: localhost:9000, как указано.
version: '3.9'
services:
db:
container_name: 'mysql8.0'
image: 'mysql:8.0.32'
volumes:
- ./data/mysql:/var/lib/mysql
command: mysqld --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
restart: always
tty: true
ports:
- 18766:3306
expose:
- '18766'
environment:
- MYSQL_ROOT_PASSWORD
- MYSQL_DATABASE
- MYSQL_USER
- MYSQL_PASSWORD
networks:
- wp
wordpress:
container_name: 'wordpress-app'
depends_on:
- db
image: 'wordpress:6.2.0-php8.2-fpm'
ports:
- 9000:80
- 443:443
environment:
- WORDPRESS_DB_HOST
- WORDPRESS_DB_USER
- WORDPRESS_DB_PASSWORD
- WORDPRESS_DB_NAME
- WORDPRESS_CONFIG_EXTRA
volumes:
- "./wordpress:/var/www/html"
- "./wp-content:/var/www/html/wp-content"
networks:
- wp
phpmyadmin:
depends_on:
- db
image: phpmyadmin:5.2.1-fpm
restart: always
ports:
- 8080:80
environment:
- PMA_HOST
- MYSQL_ROOT_PASSWORD
networks:
- wp
networks:
wp:
driver: bridge
Результат docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4f9b98c82125 wordpress:6.2.0-php8.2-fpm "docker-entrypoint.s…" 5 minutes ago Up 5 minutes elastic_rosalind
6e17a7fddc25 phpmyadmin:5.2.1-fpm "/docker-entrypoint.…" 33 minutes ago Up 7 minutes 9000/tcp, 0.0.0.0:8888->80/tcp, :::8888->80/tcp first-plugin-phpmyadmin-1
3bc899ca693e wordpress:6.2.0-php8.2-fpm "docker-entrypoint.s…" 33 minutes ago Up 7 minutes 0.0.0.0:443->443/tcp, :::443->443/tcp, 9000/tcp, 0.0.0.0:9500->80/tcp, :::9500->80/tcp wordpress-app
2fb6f5614931 mysql:8.0.32 "docker-entrypoint.s…" 33 minutes ago Up 7 minutes 18766/tcp, 33060/tcp, 0.0.0.0:18766->3306/tcp, :::18766->3306/tcp mysql8.0
беговой завиток:
curl -v localhost:9500
* Trying 127.0.0.1:9500...
* Connected to localhost (127.0.0.1) port 9500 (#0)
> GET / HTTP/1.1
> Host: localhost:9500
> User-Agent: curl/7.81.0
> Accept: */*
>
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by pee
Проверка с помощью netstat
sudo netstat -tulpn | grep LISTEN 17:46:48
[sudo] password for davidshare:
tcp 0 0 0.0.0.0:18766 0.0.0.0:* LISTEN 19727/docker-proxy
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 19901/docker-proxy
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 19849/docker-proxy
tcp 0 0 0.0.0.0:9500 0.0.0.0:* LISTEN 19868/docker-proxy
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1461/cupsd
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 1233/systemd-resolv
tcp6 0 0 :::18766 :::* LISTEN 19733/docker-proxy
tcp6 0 0 :::443 :::* LISTEN 19912/docker-proxy
tcp6 0 0 :::80 :::* LISTEN 1628/apache2
tcp6 0 0 :::1716 :::* LISTEN 10204/kdeconnectd
tcp6 0 0 127.0.0.1:9614 :::* LISTEN 10216/java
tcp6 0 0 ::1:631 :::* LISTEN 1461/cupsd
tcp6 0 0 :::9000 :::* LISTEN 20905/php-fpm: mast
tcp6 0 0 :::8888 :::* LISTEN 19856/docker-proxy
tcp6 0 0 :::9500 :::* LISTEN 19876/docker-proxy
Пробовал менять порты.
Я не уверен, в чем может быть проблема. Мне нужна помощь.
лог докера:
docker logs wordpress-app
[02-Apr-2023 16:19:05] NOTICE: fpm is running, pid 1
[02-Apr-2023 16:19:05] NOTICE: ready to handle connections
[02-Apr-2023 16:35:35] NOTICE: Finishing ...
[02-Apr-2023 16:35:35] NOTICE: exiting, bye-bye!
[02-Apr-2023 16:44:32] NOTICE: fpm is running, pid 1
[02-Apr-2023 16:44:32] NOTICE: ready to handle connections
То же самое для всех контейнеров. Они недоступны
Похоже, это может быть изображение, которое вы используете для Wordpress.
Например, я попробовал ваш файл docker-compose, переключился на самые последние образы Wordpress, MySQL и phpmyadmin, и у меня не было проблем с подключением к ним.
Также обязательно удалите каталоги data, Wordpress, wp-content, которые размещены в вашем каталоге как тома.
Проблема, с которой вы столкнулись в своей конфигурации, заключается в том, что используемое вами изображение (wordpress: 6.2.0-php8.2-fpm) выставляет порт 9000 только как службу FastCGI, а не как службу HTTP. Вы не можете делать HTTP-запросы к нему. Это обычное поведение изображений PHP FPM.
Вам нужно добавить контейнер веб-сервера (apache или nginx), подключенный к службе FPM, чтобы получать ответы HTTP.
Попробуйте добавить это в свою конфигурацию:
nginx:
image: 'nginx'
restart: unless-stopped
container_name: 'nginx'
ports:
- 80:80
- 443:443
volumes:
- "./wordpress:/var/www/html"
networks:
- wp
Вы проверили
wp
журнал?