如何强制弹性beanstalk nodejs应用程序在子目录服务器中查找服务器应用程序?
我正在一个git项目中构建一个具有服务器和客户端应用程序的现代SPA。因此,弹性beanstalk不能在存储库的根目录中查找服务器应用程序,而是在子文件夹./server/中查找。客户端SPA在./client/中编码,并在构建过程中构建到服务器文件夹结构中的公用文件夹中。完全构建的客户端版本签入git,不得在roleout时构建。
所以弹性beanstalk必须在npm install和npm在服务器子目录中运行。
示例文件夹结构:
~ git-root
|-- client
| |-- ...
|
|-- server
| |-- package.json
| |-- src
| |-- public
| |-- (node_modules)
答案 0 :(得分:1)
如果您想要的 package.json 位于子目录中而不是推荐的根级别位置,您可以在 git 根目录中添加 Buildfile 和 Profile 文件,分别向 AWS Elastic Beanstalk 提供自定义构建和运行命令:
~ git-root
|-- client
| |-- ...
|
|-- server
| |-- package.json
| |-- src
| |-- public
| |-- (node_modules)
|
|--Buildfile
|--Procfile
构建文件
install: cd server && npm install
Procfile
web: cd server && npm run
答案 1 :(得分:0)
Elastic beanstalk正在使用一些可以更改的服务器配置。要更改该配置,您可以ssh到该计算机,或者您可以强制每个应用程序部署正确配置。
第二种方法是将自定义代码添加到应用根文件夹中的.ebextensions
文件夹中。
有关自定义命令.ebextensions
的更多信息可以在这里找到: