postgresql - 无法使用 Docker Compose 与 Wordpress 建立 postgres 连接
问题描述
包括docker-compose在内没有这种问题。
我找不到我的 docker-compose.yml 文件有什么问题。顺便说一句,我不想在 docker hub 上使用现成的“wp-postgres”图像。
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: postgres
restart: always
environment:
POSTGRES_DB_NAME: exampledb
POSTGRES_PASSWORD: examplepass
POSTGRES_DB_USER: exampleuser
volumes:
- db:/var/lib/postgres
volumes:
wordpress:
db:
这是日志:
dpress_1 | WordPress not found in /var/www/html - copying now...
wordpress_1 | Complete! WordPress has been successfully copied to /var/www/html
wordpress_1 | [02-Mar-2020 18:33:10 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Connection refused in Standard input code on line 22
wordpress_1 | MySQL Connection Error: (2002) Connection refused
wordpress_1 |
wordpress_1 | WARNING: unable to establish a database connection to 'db'
wordpress_1 | continuing anyways (which might have unexpected results)
wordpress_1 |
wordpress_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.25.0.3. Set the 'ServerName' directive globally to suppress this message
wordpress_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.25.0.3. Set the 'ServerName' directive globally to suppress this message
wordpress_1 | [Mon Mar 02 18:33:38.074477 2020] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.38 (Debian) PHP/7.3.15 configured -- resuming normal operations
wordpress_1 | [Mon Mar 02 18:33:38.074510 2020] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
db_1 |
db_1 | PostgreSQL Database directory appears to contain a database; Skipping initialization
db_1 |
db_1 | 2020-03-02 19:40:34.511 UTC [1] LOG: starting PostgreSQL 12.2 (Debian 12.2-2.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
db_1 | 2020-03-02 19:40:34.512 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
db_1 | 2020-03-02 19:40:34.512 UTC [1] LOG: listening on IPv6 address "::", port 5432
解决方案
您不能将 PostgreSQL 数据库与官方 Wordpress 图像一起使用。您将在日志中看到:
wordpress_1 | [02-Mar-2020 18:33:10 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Connection refused in Standard input code on line 22
wordpress_1 | MySQL Connection Error: (2002) Connection refused
官方的 Wordpress 图像假设一个 mysql 数据库,不幸的是没有提供任何额外的配置来改变它。如果你想使用 Postgres,你需要使用wp-postgres
图片,或者使用官方 Wordpress 图片的修改版本:
https://hub.docker.com/r/ntninja/wordpress-postgresql
披露:我为EnterpriseDB (EDB)工作
推荐阅读
- javascript - socket.io 在房间里广播
- sql - 如何在 bigquery 中回填空值?
- c++ - 尝试将字符分配给二维字符数组时,表示数组值的整数在 for 循环中增加
- php - 未定义的数据库变量
- node.js - Heroku 部署失败:无法加载在“package.json”中声明的插件“cypress”:找不到模块“eslint-plugin-cypress”
- javascript - Promisified IndexedDB 事务中的数据操作不会回滚
- python - Django - 多对一关系和用户输入的数据列表
- java - 如何在 Spring Boot Camel 中使用 onException() 处理异常
- c++ - MV Studio C++ - 二维数组不适用于文件
- javascript - 如何将 div 绝对定位在主目录之外?