首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头组成: Depends_On与外部容器?

码头组成: Depends_On与外部容器?
EN

Stack Overflow用户
提问于 2019-12-14 20:33:05
回答 2查看 7.7K关注 0票数 6

我试图为一个名为" MySQL“的外部mysql容器添加mysql(我不想为这个堆栈创建一个新的mysql容器;我想使用现有的容器)。

到目前为止,我的代码如下所示:

代码语言:javascript
复制
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

有人知道解决办法吗?

EN

回答 2

Stack Overflow用户

发布于 2021-04-18 13:39:51

depends_on指令仅适用于同一组合项目中的服务。如果将这些文件合并到同一个项目中,它们可能位于不同的文件中。

代码语言:javascript
复制
docker-compose -f compose-app.yaml -f compose-db.yaml up

否则,我建议将启动依赖项从compose移到应用程序的入口点。这方面的常见示例是wait-for-it.sh,它允许您拥有一个入口点脚本:

代码语言:javascript
复制
#!/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 "$@"
票数 7
EN

Stack Overflow用户

发布于 2021-04-18 09:33:10

听起来您想要通过另一个组合堆栈来管理MySQL容器。

因此,选项一:检查外部链接是否适合您:无法连接的链接

另一种选择是通过主机网络堆栈将其连接起来:

在当前堆栈中,需要更改此部分。

代码语言:javascript
复制
WORDPRESS_DB_HOST: mysql:3306

作为概念的证明,将mysql替换为MySQL容器的IP地址,并删除任何depends_on。

另一方面,您应该确保在启动MySQL容器时,容器端口被链接到主机端口。所以这两个人通过主机栈进行通信。另外,可以将主机名mysql配置为第二步。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59338918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档