使用docker-compose启动WordPress报错:依赖服务wpdb:mysql未定义
解决Docker Compose中"Service 'wp' depends on service 'wpdb:mysql' which is undefined"错误
这个报错其实是两个小细节问题导致的,咱们一步步来修复:
1. 服务名称不匹配
你在docker-compose.yml里定义的数据库服务名叫wpdp,但在wp服务的depends_on和links里引用的却是wpdb——Docker Compose严格匹配服务名称,找不到名为wpdb的服务自然会报错。
2. depends_on格式错误
depends_on只需要指定服务名称即可,不需要加:mysql这种后缀,这个后缀是links字段里用来设置别名的格式,不能混用在depends_on里。
另外还要提醒一个潜在坑:你的wp服务环境变量里的WORDPRESS_DB_USER是wp_user,但数据库服务中创建的用户是db_user,这会导致WordPress后续无法连接数据库,也需要一起修正。
修正后的完整docker-compose.yml
version: '3' services: wpdb: image: mariadb ports: - "8081:3306" environment: MYSQL_ROOT_PASSWORD: "root_password" MYSQL_DATABASE: "db_name" MYSQL_USER: "db_user" MYSQL_PASSWORD: "db_password" wp: image: wordpress volumes: - ./:/var/www/html ports: - "8080:80" depends_on: - wpdb links: - wpdb:mysql environment: WORDPRESS_DB_USER: "db_user" WORDPRESS_DB_PASSWORD: "db_password" WORDPRESS_DB_NAME: "db_name"
关键修改点说明
- 把数据库服务名从
wpdp改为wpdb,和wp服务里的引用名称统一 - 移除
depends_on里的:mysql后缀,仅保留服务名wpdb - 同步
wp服务的数据库用户/密码配置,和数据库服务创建的信息保持一致
现在重新运行docker-compose up -d,应该就能正常启动所有服务了。
内容的提问来源于stack exchange,提问作者Laxmana
相关产品推荐
相关产品推荐

