我正在尝试设置我的环境来构建WordPress站点,但是docker-compose失败,连接被拒绝。
我花了 2 天多的时间试图弄清楚,浏览网页但徒劳无功。我尝试了堆栈溢出上可用的解决方案,但仍然徒劳无功。
这是我的码头工人组合
version: '3.7'
services:
wordpress:
depends_on:
- db
image: wordpress
container_name: wp-web
ports:
- 7000:80
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: banana
WORDPRESS_DB_PASSWORD: banana
WORDPRESS_DB_NAME: banana
working_dir: /var/www/html
volumes:
- ./wp-content:/var/www/html/wp-content
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
db:
image: mysql:5.7
container_name: db_server
command: --default-authentication-plugin=mysql_native_password
volumes:
- ./db_data:/home/abelmbula/Documents/dockerapp/lib/mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: banana
MYSQL_DATABASE: banana
MYSQL_USER: banana
MYSQL_PASSWORD: banana
ports:
- 8889:3306
volumes:
db_data:
我把这个拿出来
Starting db_server ... done
Recreating wp-web ... done
Attaching to db_server, wp-web
db_server | Initializing database
db_server | 2019-06-14T13:32:53.477264Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_server | 2019-06-14T13:32:53.479113Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
db_server | 2019-06-14T13:32:53.479146Z 0 [ERROR] Aborting
db_server |
wp-web | [14-Jun-2019 13:33:03 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Connection refused in Standard input code on line 22
wp-web |
wp-web | MySQL Connection Error: (2002) Connection refused
db_server exited with code 1
我上面的文件有问题吗?
这是一个最小的例子:
version: '3.7'
services:
wordpress:
depends_on:
- mysql
image: wordpress
container_name: wordpress
hostname: wordpress
domainname: example.com
ports:
- 8080:80
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: banana
WORDPRESS_DB_PASSWORD: banana
WORDPRESS_DB_NAME: banana
working_dir: /var/www/html
volumes:
- wp_content:/var/www/html/wp-content
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
mysql:
image: mysql:5.7
container_name: mysql
hostname: mysql
domainname: example.com
command: --default-authentication-plugin=mysql_native_password
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: banana
MYSQL_DATABASE: banana
MYSQL_USER: banana
MYSQL_PASSWORD: banana
expose:
- 3306
volumes:
db_data:
wp_content:
此示例使用volumes
中定义的db_data
卷来存储数据库文件(默认情况下docker
卷存在于主机操作系统上的/var/lib/docker/volumes
中(,它为wordpress
内容添加命名docker volume
,它不会将数据库端口发布到主机,而是在docker
网络中公开它,以便wordpress
服务可以访问它,并设置示例CC_服务的 9 和 domainname
个条目。
我也有同样的问题,我尝试了两件对我有用的事情,也可能对你有用!
1 - 在 docker-compose.yml 文件上为 WordPress 和 db 添加此标志重新启动:除非停止2 - 让MySQL首先启动,使WordPress与数据库连接。
services:
db:
container_name: mysql
environment:
MYSQL_DATABASE: wordpress
MYSQL_PASSWORD: wordpress
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_USER: wordpress
image: mysql:5.7
restart: unless-stopped
volumes:
- /Users/ucqi/Apps/wp/www.tsm.com/db:/var/lib/mysql:rw
wordpress:
container_name: wordpress
depends_on:
- db
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_USER: wordpress
image: wordpress:latest
ports:
- published: 8000
target: 80
restart: unless-stopped
version: '3.3'
希望对你有用