亚马逊EC2 | CodeDeploy [React] - 部署成功但构建文件夹未填充
Amazon EC2 | CodeDeploy [React] - Deployment succeeds but build folder not populated
TL;DR 命令 npm run build
在 Amazon EC2 [Ubuntu] 实例上永远 运行 当我尝试 运行 SSH。同时,当我尝试使用 CodeDeploy 创建部署时,部署花费了 1 小时并成功,但构建文件夹没有被填充,因此我无法在 public [=58 上查看我的网站=] 的 EC2 实例。此外,每次我尝试显式 运行 命令后,实例可达性检查都会失败,然后我必须再次启动然后停止 ec2 实例!哇!
大家好,我正在尝试将我的 MERN Stack 应用程序部署到 AWS,但我现在卡住了!
当前进度:
- 添加了两个 Nginx 配置。[附上下面的图片]
Nginx 运行ning 没有问题!
- 在根目录的 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
是否有问题!
我很乐意进一步分享 details/screenshots 以支持我的问题。请过来提问
提前致谢!
/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf
如果您使用的是 EC2 免费套餐,则实例的规格和内存可能较低(t2.nano
有 0.5G,t2.micro
有 1G 内存)。
也许 npm run build
消耗了所有内存 space。
我的vue项目经常遇到同样的问题。
解决方案:不要对大中型项目使用免费套餐。升级您的计划并使用更好的实例,例如t2.medium
TL;DR 命令 npm run build
在 Amazon EC2 [Ubuntu] 实例上永远 运行 当我尝试 运行 SSH。同时,当我尝试使用 CodeDeploy 创建部署时,部署花费了 1 小时并成功,但构建文件夹没有被填充,因此我无法在 public [=58 上查看我的网站=] 的 EC2 实例。此外,每次我尝试显式 运行 命令后,实例可达性检查都会失败,然后我必须再次启动然后停止 ec2 实例!哇!
大家好,我正在尝试将我的 MERN Stack 应用程序部署到 AWS,但我现在卡住了!
当前进度:
- 添加了两个 Nginx 配置。[附上下面的图片] Nginx 运行ning 没有问题!
- 在根目录的 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
是否有问题!
我很乐意进一步分享 details/screenshots 以支持我的问题。请过来提问
提前致谢!
/etc/nginx/nginx.conf
如果您使用的是 EC2 免费套餐,则实例的规格和内存可能较低(t2.nano
有 0.5G,t2.micro
有 1G 内存)。
也许 npm run build
消耗了所有内存 space。
我的vue项目经常遇到同样的问题。
解决方案:不要对大中型项目使用免费套餐。升级您的计划并使用更好的实例,例如t2.medium