首页 > 解决方案 > 将 NodeJS Express API 部署到 AWS

问题描述

我使用 CodeFresh 构建我的 Docker 映像并推送到 AWS ECR。

在此处输入图像描述

我检查了我的 ECR,我可以看到成功推送到那里。

在此处输入图像描述

我通过 SSH 连接到我的 EC2,在那里我看不到任何内容。

在此处输入图像描述


更新

[ec2-user@ip-10-0-0-47 share]$ docker ps                                                                                                                            
CONTAINER ID        IMAGE                                                    COMMAND             CREATED             STATUS              PORTS               NAMES  
1e4d4eae6520        616934057156.dkr.ecr.us-east-2.amazonaws.com/bheng-api   "sh cmd.sh"         29 hours ago        Up 29 hours         3002/tcp            ecs-api-1-bheng-api-88ef95c7ddc993badf01                                                                                                                                   
44b78781d487        amazon/amazon-ecs-agent:latest                           "/agent"            30 hours ago        Up 30 hours                             ecs-agent                                                                                                                                                                  
[ec2-user@ip-10-0-0-47 share]$                                                                                                                                      
[ec2-user@ip-10-0-0-47 share]$                                                                                                                                      
[ec2-user@ip-10-0-0-47 share]$ docker images                                                                                                                        
REPOSITORY                                               TAG                 IMAGE ID            CREATED             SIZE                                           
616934057156.dkr.ecr.us-east-2.amazonaws.com/bheng-api   latest              41e9eaa2aff2        29 hours ago        952MB                                          
amazon/amazon-ecs-agent                                  latest              622111e45fde        6 weeks ago         29.4MB                                         
amazon/amazon-ecs-pause                                  0.1.0               b875fd8f097a        6 weeks ago         963kB                                          
[ec2-user@ip-10-0-0-47 share]$                                                                                                                                      
[ec2-user@ip-10-0-0-47 share]$                                                                                                                                      
[ec2-user@ip-10-0-0-47 share]$

这是我的EC2的安全组

在此处输入图像描述

PM2

Use --update-env to update environment variables
[PM2] Applying action restartProcessId on app [all](ids: 0)
[PM2] [index](0) ✓
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name │ id │ mode │ pid   │ status │ restart │ uptime │ cpu │ mem       │ user │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ index    │ 0  │ fork │ 23901 │ online │ 1       │ 0s     │ 0%  │ 12.8 MB   │ node │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘

标签: node.jsamazon-web-servicesdockeramazon-ec2continuous-integration

解决方案


第一件事

这样做ls并不意味着它会显示 docker 图像。

如果 docker 图像拉取成功,则使用以下命令进行检查。

docker images

这将打印在这个 ec2 容器实例中运行的所有图像。类似的东西56789.dkr.ecr.us-east-2.amazonaws.com/bheng-api:latest

至于调试是一个问题,您需要检查您的 docker 容器是否正在运行。

docker ps

这将打印正在运行的容器。

复制容器的 id 并运行此命令。

docker exec -it {container_id} bash|ash

码头工人日志

docker logs  {container_id}

您还可以通过将角色分配给您的 ece 容器实例并运行以下命令来检查图像的工作方式。

docker run -it --rm -p 80:80 56789.dkr.ecr.us-east-2.amazonaws.com/bheng-api:latest

我将再次提及步骤

  1. 创建 ECR 并推送你的 docker 镜像
  2. 创建任务定义
  3. 创建运行该任务定义实例的服务。如果没有服务,就不会有容器或 docker 镜像之类的东西。一旦您创建服务,您将在您的 ec2 实例中设置 docker 映像。

您还可以在 ECS -> 集群 -> 服务 -> 任务下使用 AWS 控制台查看任务事件

如果出现问题,您将在以下事件中看到

在此处输入图像描述

如果一切正常,那么

在此处输入图像描述

完整图像

在此处输入图像描述


推荐阅读