mysql - 无法连接到AWS ECS上的MySQL容器

标签 mysql docker amazon-ecs

我似乎无法连接到 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 做其他事情吗?

最佳答案

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

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

关于mysql - 无法连接到AWS ECS上的MySQL容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43302904/

相关文章:

php - 访问复选框表中的相应数据

amazon-web-services - 部署到 AWS 上的 ECR 时如何标记镜像的新版本?

ruby-on-rails - Amazon-ecs如何获取产品的顶级分类?

php - 初学者在表单处理方面遇到困难 - 无法将数据发布到 MySQL DB

mysql - 获得最高分和胜利次数

php - 错误 : 1265 : Data truncated for column exploded string

java - Docker内存限制导致SLUB无法使用大页面缓存进行分配

java - 使用 docker 和 kubernetes 部署的 Spring-boot 微服务应用程序 : Services not communicating

postgresql - 我在docker-compose中为.netcore和postgres做错了什么?

docker - 如何在docker环境中连接snort和snorby?