我试图为一个名为" MySQL“的外部mysql容器添加mysql(我不想为这个堆栈创建一个新的mysql容器;我想使用现有的容器)。
到目前为止,我的代码如下所示:
version: '2'
services:
wordpress:
image: wordpress:latest
hostname: mia
restart: unless-stopped
ports:
- 80
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: "mia"
WORDPRESS_DB_PASSWORD: "12345"
WORDPRESS_DB_NAME: "mia"
volumes:
- /f/Sites/mia:/var/www/html
depends_on:
- mysql
networks:
- occms
- ocdb
mysql:
name: mysql
networks:
occms:
external:
name: cms
ocdb:
external:
name: db有人知道解决办法吗?
发布于 2021-04-18 13:39:51
depends_on指令仅适用于同一组合项目中的服务。如果将这些文件合并到同一个项目中,它们可能位于不同的文件中。
docker-compose -f compose-app.yaml -f compose-db.yaml up否则,我建议将启动依赖项从compose移到应用程序的入口点。这方面的常见示例是wait-for-it.sh,它允许您拥有一个入口点脚本:
#!/bin/sh
# delay for mysql startup using wait-for-it for up to 5 minutes
wait-for-it.sh -h mysql -p 3306 -t 300
# call the original wordpress entrypoint script with any args
exec docker-entrypoint.sh "$@"发布于 2021-04-18 09:33:10
听起来您想要通过另一个组合堆栈来管理MySQL容器。
因此,选项一:检查外部链接是否适合您:无法连接的链接
另一种选择是通过主机网络堆栈将其连接起来:
在当前堆栈中,需要更改此部分。
WORDPRESS_DB_HOST: mysql:3306作为概念的证明,将mysql替换为MySQL容器的IP地址,并删除任何depends_on。
另一方面,您应该确保在启动MySQL容器时,容器端口被链接到主机端口。所以这两个人通过主机栈进行通信。另外,可以将主机名mysql配置为第二步。
https://stackoverflow.com/questions/59338918
复制相似问题