将NodeJS Express API部署到AWS

时间:2018-06-23 17:04:02

标签: node.js amazon-web-services docker amazon-ec2 continuous-integration

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

enter image description here

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

enter image description here

我通过SSH进入EC2,那里没有任何内容。

enter image description here


问题

人们将如何进行进一步调试?


目前我愿意接受任何建议。

对此的任何提示/建议/帮助将不胜感激!


更新

[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

的安全组

enter image description here

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 │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘

1 个答案:

答案 0 :(得分:3)

第一件事

执行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. 创建任务定义
  4.   
  5. 创建运行该任务定义实例的服务。没有服务,将不会有像容器或码头工人形象。   创建服务后,您将在ec2实例中设置docker映像。
  6.   

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

如果出现问题,您会在类似事件中看到

enter image description here

如果一切正常,那么

enter image description here

完整图片

enter image description here