【问题标题】:Amazon EC2 | CodeDeploy [React] - Deployment succeeds but build folder not populated亚马逊EC2 | CodeDeploy [React] - 部署成功,但未填充构建文件夹
【发布时间】:2020-08-08 23:32:06
【问题描述】:

TL;DR 命令 npm run build 在我尝试通过创建 SSH 显式运行它时,它需要永远在 Amazon EC2 [Ubuntu] 实例上运行。同时,当我尝试使用 CodeDeploy 创建部署时,部署需要 1 小时的时间并成功,但构建文件夹没有被填充,因此我无法在 EC2 实例的公共 URL 上查看我的网站。此外,每次尝试显式运行命令后,实例可达性检查都会失败,然后我必须再次启动然后停止 ec2 实例!呜呜!


大家好,我正在尝试将我的 MERN Stack 应用程序部署到 AWS,但我现在卡住了!

目前进展:

  1. 添加了两个 Nginx 配置。[下图] Nginx 正在运行,那里没有问题!
  2. 在根目录的 appspec.yml 中添加了 build-app.sh。 [查看下面的代码]
#!/bin/bash

#clear  build    directory
cd /home/ubuntu/badlav-app/badlav-client
sudo rm -rf build
sudo mkdir build

#client (Generates a new `build` directory)
cd /home/ubuntu/badlav-app/badlav-client
sudo sh set-prod-env-aws.sh
sudo rm -rf node_modules
sudo npm i
sudo npm run build

#server
cd /home/ubuntu/badlav-app/badlav-server
sudo sh set-prod-env.sh

#back to root
cd /home/ubuntu

appspec.yml

version: 0.0
os: linux
files:
  - source: /
    destination: /home/ubuntu/badlav-app
hooks:
  BeforeInstall:
    - location: scripts/build-app.sh
      runas: root

使用上面的 appspec.yml 文件,使用 CodeDeploy 的部署成功,但没有填充 /home/badlav-app/badlav-client/build 中的构建文件夹。 所以我尝试自己调试,并在 SSH(ing :P) 进入 EC2 实例后开始自己一个一个地运行命令。但是当我到达npm run build 时,实例就永远挂起。筋疲力尽后,我别无选择,我终止了任务。现在,当我在 AWS 控制台上查看我的实例时,它已经发疯了!实例可达性检查失败!恢复我的实例的唯一方法是停止并重新启动它。

由于我是 CI/CD 新手,请不要评价我的 appspec.yml。如果你们中的任何人都可以提出更好的方法,那就太好了,谢谢! :)

总而言之,我希望能够使用 AWS CodeDeploy 创建部署,但由于 npm run build 花费了这么多时间并挂起我的服务器(实例到达检查失败!),我无法这样做。而且,我什至不确定npm run build是否有问题!

为了支持我的问题,我非常乐意分享更多详细信息/屏幕截图。请过来询问。

提前致谢!

/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf

【问题讨论】:

  • 你能出示你的appspec.yml文件吗?
  • 已编辑,添加。请找到。谢谢

标签: amazon-web-services nginx amazon-ec2 aws-code-deploy aws-code-deploy-appspec


【解决方案1】:

如果您使用的是 EC2 免费套餐,则实例的规格和内存可能较低(t2.nano 有 0.5G,t2.micro 有 1G 内存)。

也许npm run build 会占用所有内存空间。

我的 vue 项目经常遇到同样的问题。

解决方案:不要将免费层用于大中型项目。升级您的计划并使用更好的实例,例如t2.medium

【讨论】:

  • 哦,我并没有完全意识到这一点:也许就是这样。那你怎么建?
  • 请告诉我,我有 t2.micro
  • 我升级到 t2.medium。它就像一个魅力!谢谢!
  • 你能不能也试着回答一下,我又卡住了,对不起! stackoverflow.com/questions/63317832/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
  • 2013-11-24
  • 1970-01-01
  • 2012-06-05
  • 1970-01-01
  • 1970-01-01
  • 2017-01-10
相关资源
最近更新 更多