我有4个码头图像,我想运行在ECS上。对于我的本地系统,我使用停靠-撰写文件,其中我有多个服务。
我想在ECS上做类似的码头设计。
我希望我的数据库映像能够在EC2上运行,在fargate上运行rest,并在EC2上托管数据库的容量,并确保每个容器都可以使用它们的名称相互通信。如何配置我的docker-compose.yml和ecs-par.yml文件??
我的样本码头-复合文件
version: '2.1'
services:
first:
image: first:latest
ports:
- "2222:2222"
depends_on:
database:
condition: service_healthy
second:
image: second:latest
ports:
- "8090:8090"
depends_on:
database:
condition: service_healthy
third:
image: third:latest
ports:
- "3333:3333"
database:
image: database
environment:
MYSQL_ROOT_PASSWORD: abcde
MYSQL_PASSWORD: abcde
MYSQL_USER: user
ports:
- "3306:3306"
volumes:
- ./datadir/mysql:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
timeout: 5s
retries: 5发布于 2019-11-27 19:32:36
depends_on只是告诉Docker在容器启动时使用的顺序。
您可能在容器中有实际的硬编码连接,这是不好的。third容器可以使用database域名到达database容器。
因此,如果您的容器中有这样的名称硬编码,它将工作。然而,人们通常将连接点(URL)配置为Docker组合文件中的环境变量。在这种情况下,没有硬编码。您可以通过撰写文件这里看到配置示例。
https://stackoverflow.com/questions/59073353
复制相似问题