日志
应用程序日志可以通过容器获取docker compose logs。Docker ECS 集成依赖 AWS CloudWatch Logs 从所有容器收集日志。CloudWatch 可以通过传递前缀为awslogs-.
test:
image: Mycompany/webapp
logging:
driver-opts:
awslogs-datetimE-pattern: “soMe-pattern”
暴露端口
当一个或多个服务公开端口时,将为应用程序创建一个负载均衡器。由于所有服务都通过同一个负载均衡器公开,因此只有一个服务可以公开给定的端口号。Compose 文件中定义的源端口和目标端口必须相同,因为服务到服务的通信不通过负载均衡器,并且无法从 Listeners 抽象中受益以分配不同的发布端口。
如果 Compose 文件中的服务仅公开端口 80 或 443,则会创建应用程序负载均衡器,否则 ECS 集成将提供网络负载均衡器。使用不同端口的 HTTP 服务可以通过x-aws-Protocol在端口声明中声明带有自定义扩展的 http 协议来强制使用 ALB :
test:
image: Mycompany/webapp
ports:
– target: 8080
x-aws-Protocol: http
持久卷
Docker 卷映射到 EFS 文件系统。卷可以是外部的(name然后必须设置为文件系统 ID),也可以在首次部署应用程序时创建。docker compose down不会删除文件系统,它将在以后运行时重新附加到应用程序。driver_opts可用于调整 EFS 文件系统。
无论用户配置为运行容器,都可以通过设置用于写入文件系统的用户和组 ID 来自定义卷挂载以解决 Posix 文件系统权限问题。
services:
MYservice:
image: Mycompany/webapp
volumes:
– Mydata:/Mount/testvolumes
volumes:
Mydata:
driver_opts:
performance-Mode: MaxIO
throughput-Mode: bursting
uid: 0
gid: 0
秘密
机密可以在撰写文件中定义,并且需要在撰写文件旁边的部署时可用的机密文件。秘密文件的内容将在选定的容器内可用,默认情况下在/Run/secrets/
services:
Nginx:
image: Mycompany/webapp
secrets:
– MYsecret
secrets:
MYsecret:
file: ./My_secret1.txt
容器资源
CPU 和内存限制可以在 compose.yml 中设置。这些用于选择与这些限制匹配的最小Fargate 大小。
services:
Nginx:
image: Mycompany/webapp
deploy:
Resources:
Limits:
Cpu: ””0.5””
Memory: 2Gb