首页 > 解决方案 > Elastic Beanstalk - 在每次部署 Django 时运行 npm install 和 webpack

问题描述

我正在尝试使用 Elastic Beanstalk 来部署我的 Django 服务器。

我的问题是我的部分部署过程是从我的 package.json 中“npm install”,然后执行 webpack ( npx webpack ..... --output main.js)

我怎样才能做到这一点,同时保持一个简单的部署过程 ( eb deploy) 并且不提交main.js到存储库?

标签: djangowebpackamazon-elastic-beanstalk

解决方案


为此,您可能需要ebextensions配置 Elastic Beanstalk 环境。文档在这里

我最近在 ElasticBeanstalk 上部署了我的 Symfony 应用程序,它需要 Yarn 来执行 webpack。

为此,我创建了一个.config文件,在其中我编写了安装 Yarn 的命令和另一个.config文件以在每次部署时运行 Yarn。所有.config文件都在.ebextensions项目根目录下。

commands:
  01_install_node:
    command: |
      sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
      sudo yum -y install nodejs 
  02_install_yarn:
    command: |
      sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
      sudo yum -y install yarn

您可以使用 container_commands 键来执行影响您的应用程序源代码的命令。在设置应用程序和 Web 服务器并提取应用程序版本存档后运行容器命令。

container_commands:
  02_run_yarn:
    command: |
      yarn install
      yarn run encore production

推荐阅读