【问题标题】:elastic beanstalk node application within subdirectory子目录中的弹性beantalk节点应用程序
【发布时间】:2017-03-12 10:33:44
【问题描述】:

如何强制弹性 beanstalk nodejs 应用程序在子目录服务器中查找服务器应用程序?

我正在构建一个现代 SPA,它在一个 git 项目中包含服务器和客户端应用程序。因此,弹性 beanstalk 不能在存储库的根目录中查找服务器应用程序,而是在子文件夹 ./server/ 中查找。客户端 SPA 编码在 ./client/ 中,并在构建过程中构建到服务器文件夹结构内的公用文件夹中。完整构建的客户端版本已签入 git,并且不能在角色退出时构建。

所以 elastic beanstalk 必须在 server 子目录中 npm install 和 npm run。

示例文件夹结构:

~ git-root
|-- client
|    |-- ...
|
|-- server
|   |-- package.json
|   |-- src
|   |-- public
|   |-- (node_modules)

【问题讨论】:

  • 你找到方法了吗?

标签: node.js git amazon-web-services amazon-elastic-beanstalk


【解决方案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

过程文件

web: cd server && npm run

AWS documentation for Buildfile & Procfile

【讨论】:

    【解决方案2】:

    Elastic beanstalk 正在使用一些可以更改的服务器配置。要更改该配置,您可以 ssh 到该机器,或者您可以在每个应用程序部署时强制进行正确配置。

    第二种方法可以通过将自定义代码添加到位于应用根文件夹中的.ebextensions 文件夹中。

    更多关于自定义命令.ebextensions的信息可以在这里找到:

    【讨论】:

    • 我知道 .ebextensions。然而,所提供的链接似乎都不能解决在子目录中运行服务器的问题。我不喜欢重写亚马逊提供的所有功能和命令的想法。
    猜你喜欢
    • 2018-02-12
    • 2013-07-09
    • 2017-07-11
    • 2017-04-12
    • 2018-03-26
    • 2016-04-23
    • 2016-01-11
    • 2019-05-01
    • 1970-01-01
    相关资源
    最近更新 更多