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

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

ECS中不支持 depends_on字段。 你的wordpress容器在你的db容器打开它的端口之前就开始了,因此出错了。

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