如何通过 docker-compose 在 fargate 上查看部署失败的日志

How to check the log of failed deployment by docker-compose on fargate

我使用此命令将我的项目部署到 aws ecs

docker compose -f docker-compose.fargate.yml up

version: "3.9"
   
services:

  admindjango:
    image: 6781xxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/st_admin_site:latest
    ports:
      - "8011:8011"
    restart: always
    command: uwsgi --http :8011 --module admin_site.wsgi

  nginx:
    image: 6781xxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/st_nginx:latest
    ports:
      - '80:80'
    depends_on:
      - admindjango

一开始看起来不错,最后失败了。

并且堆栈也被删除。

我猜 docker 中有一些错误,但是堆栈被删除了,所以我找不到任何关于发生的事情的线索。有什么好的方法可以查看日志什么的吗?

(base) whitebear$ docker compose -f docker-compose.fargate.yml up
WARNING services.restart: unsupported attribute      
WARNING services.scale: unsupported attribute        
WARNING services.scale: unsupported attribute        
[+] Running 20/20
 ⠿ monitor-admin                    DeleteComplete                                                                                                                      358.5s
 ⠿ NginxTaskExecutionRole            DeleteComplete                                                                                                                      242.0s
 ⠿ CloudMap                          DeleteComplete                                                                                                                      352.6s
 ⠿ Cluster                           DeleteComplete                                                                                                                      306.6s
 ⠿ LogGroup                          DeleteComplete                                                                                                                      308.7s
 ⠿ NginxTCP80TargetGroup             DeleteComplete                                                                                                                      242.0s
 ⠿ DefaultNetwork                    DeleteComplete                                                                                                                      306.6s
 ⠿ AdmindjangoTaskExecutionRole      DeleteComplete                                                                                                                      309.7s
 ⠿ LoadBalancer                      DeleteComplete                                                                                                                      307.6s
 ⠿ AdmindjangoTCP8011TargetGroup     DeleteComplete                                                                                                                      307.6s
 ⠿ Default80Ingress                  DeleteComplete                                                                                                                      229.9s
 ⠿ DefaultNetworkIngress             DeleteComplete                                                                                                                      228.9s
 ⠿ Default8011Ingress                DeleteComplete                                                                                                                      228.9s
 ⠿ NginxTaskDefinition               DeleteComplete                                                                                                                      211.9s
 ⠿ AdmindjangoTaskDefinition         DeleteComplete                                                                                                                      276.9s
 ⠿ AdmindjangoServiceDiscoveryEntry  DeleteComplete                                                                                                                      257.6s
 ⠿ NginxServiceDiscoveryEntry        DeleteComplete                                                                                                                      192.3s
 ⠿ NginxTCP80Listener                DeleteComplete                                                                                                                       87.4s
 ⠿ AdmindjangoTCP8011Listener        DeleteComplete                                                                                                                      152.8s
 ⠿ AdmindjangoService                DeleteComplete                                                                                                                      142.9s
AdmindjangoService EssentialContainerExited: Essential container in task exited

我们最近引入了 avoid the automatic rollback in CFN 的功能,但 docker 没有利用它 (AFAIK)。

在这种情况下最好的选择(无论如何我都是这样做的)是密切监视部署并检查任务日志。 CFN 消息表示基本容器已退出。这意味着 nginxadmindjango 容器(部署在单独的 ECS 服务和同一 ECS 集群下的单独 ECS 任务中)长时间 运行 没有稳定并退出。您需要在 ECS 控制台中找到它们并浏览容器日志以了解发生了什么(哪个失败以及为什么失败)。

我想这个撰写在本地很好,我猜?