我似乎无法连接到 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/