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

问题描述 投票:0回答:2

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

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
amazon-web-services docker amazon-ecs aws-fargate
2个回答
1
投票

我们最近引入了避免 CFN 中自动回滚的功能,但 docker 并没有利用这一点(据我所知)。

在这种情况下,最好的选择(无论如何我都是这样做的)是密切监视部署并检查任务日志。 CFN 消息表明基本容器已退出。这意味着

nginx
admindjango
容器(部署在同一ECS集群下的单独ECS服务和单独ECS任务中)长期不稳定并退出。您需要在 ECS 控制台中找到它们并浏览容器日志以了解发生了什么(哪一个失败以及原因)。

我想这个组合在本地效果很好,我猜?


0
投票

您可以做的另一件事是设置 CloudWatch 日志并在 docker-compose 文件中定义它。

只需创建一个新的 CloudWatch 日志组即可

aws logs create-log-group --log-group-name <your-log-group-name>

然后您应该设置日志组名称、AWS 区域以及前缀,以便在您需要时标记日志。将多个容器连接到同一个日志组。

services:
  your-service:
    image: your-image
    logging:
      driver: awslogs
      options:
        awslogs-group: your-log-group-name
        awslogs-region: your-aws-region
        awslogs-stream-prefix: your-log-stream-prefix

然后,您应该能够在 CloudWatch 界面中或通过使用 AWS CLI 中的命令来查看它们。

© www.soinside.com 2019 - 2024. All rights reserved.