wordpress docker compose (56) Recv failure: Connection reset



我有这个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:

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:6.2.0-php8.2-fpm)只公开端口9000作为FastCGI服务,而不是作为HTTP服务。你不能向它发出HTTP请求。这是PHP FPM图像的通常行为。

你需要添加一个webserver (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

这可能是你Wordpress使用的图片。

例如,我已经尝试了你的docker-compose文件,切换到最新的Wordpress, MySQL和phpmyadmin图像,我没有任何问题,跨越它们的连接。

还要确保删除作为卷放在目录中的data、Wordpress、wp-content目录。

最新更新