【问题标题】:Can't connect to MySQL container on AWS ECS无法连接到 AWS ECS 上的 MySQL 容器
【发布时间】:2017-04-10 01:39:47
【问题描述】:

我似乎无法连接到 AWS ECS 中的 MySQL 容器。这是我与 ecs-cli compose up 一起使用的 docker-compose.yml:

version: '2'

services:
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    logging:
      driver: awslogs
      options:
        awslogs-group: "mylogs"
        awslogs-region: "us-east-2"
        awslogs-stream-prefix: "db"
    mem_limit: 300000000

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_PASSWORD: wordpress
    logging:
      driver: awslogs
      options:
        awslogs-group: "mylogs"
        awslogs-region: "us-east-2"
        awslogs-stream-prefix: "web"
    mem_limit: 300000000

我得到的错误是:

MySQL Connection Error: (2002) php_network_getaddresses: getaddrinfo failed: Name or service not known
Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 22 
Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 22

这似乎在本地运行良好,但在 AWS ECS 中却不行。我需要为 AWS 做其他事情吗?

【问题讨论】:

标签: mysql docker amazon-ecs


【解决方案1】:

depends_on 字段为 not supported in ECS。您的 wordpress 容器在您的 db 容器打开其端口之前启动,因此出现错误。

您需要引入一个包装脚本来等待端口可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 2019-05-26
    • 2018-01-25
    • 2014-02-25
    • 2020-01-20
    • 2018-09-09
    相关资源
    最近更新 更多