node.js - 将 NodeJS Express API 部署到 AWS

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

最佳答案

第一件事

通过执行 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 日志

docker logs  {container_id}

您还可以通过为您的 ece 容器实例分配角色并运行以下命令来检查镜像的工作情况。

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

我再提一下步骤

  1. create ECR and push ur docker image
  2. create Task definition
  3. create service that runs the instance of that task definition. with out service there will be nothing like container or docker image. once u create service you will se docker image in your ec2 instance.

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

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

enter image description here

如果一切顺利,那么

enter image description here

完整图片

enter image description here

关于node.js - 将 NodeJS Express API 部署到 AWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51003340/

相关文章:

java : Use Server-Side Encryption in Amazon S3 using vfs s3 plugin

docker - 同一主机上的两个 Docker 容器之间的慢速 Resilio 同步

docker - 无法使用 docker plugin push 命令推送插件

node.js 和 npm 在 windows 7 64 位终极版中没有网络访问权限

node.js - 密码保护 AWS Node EB 应用程序

javascript - 通过分配新变量来缩短属性路径是个好主意吗?

amazon-web-services - Elastic Beanstalk 默认设置上的 SSL 证书

javascript - Node Js回调返回函数

android - 为什么不在 AWS 中触发 setTransferListener?

maven - 在Kubernetes上部署Lagom微服务