繁体   English   中英

将strapi部署到弹性豆茎

[英]Deploy strapi to elastic beanstalk

有人可以提供有关如何将 Strapi 部署到 AWS Elastic Beanstalk 的信息吗?

我找到了很多关于如何在许多其他不同平台上部署 Strapi 的资源,例如 Digital Ocean 和 Heroku,但我对将 Strapi 部署到 Elastic Beanstalk 非常好奇。 这可能吗?我该怎么做?

有人可以提供如何将strapi部署到aws elastic beanstalk的信息吗? 我已经搜索了许多资源,如何在 DO、heroku 等许多不同的地方部署strapi,但我很好奇如何将strapi 部署到EB 是可能的,我该怎么做。

如果您想使用 AWS CodePipeline 从 Strapi 到 Elastic Beanstalk,以下步骤对我有用:

  1. 导航到 Elastic Beanstalk 并使用应用程序的相应节点版本创建一个新应用程序

    • 平台:Node.js
    • 平台分支:Node.js 12 在 64 位亚马逊上运行 Linux 2
    • 平台版本:5.4.6
    • Select 示例应用程序开始(我们将在后面的步骤中将其连接到 AWS CodePipeline)
  2. 在 GitHub 上设置代码存储库(如果尚不存在)

  3. 导航到 AWS CodeBuild 和 select create build project

    • 在源部分连接到您的 Github 存储库

    • 在Environment Section select下面配置

      • 环境图像:管理图像

      • 操作系统:Ubuntu

      • 运行时:标准

      • 图片:aws/codebuild/标准:5.0

      • 角色名称:AWS 将为您创建一个

    • 构建规范

      • Select “使用 buildspec 文件” - 我们必须在第 4 步中将 buildspec.yml 文件添加到我们的项目中
    • 保留其他默认设置并继续创建构建项目

  4. 更新您的 Strapi 代码

    • 按照 Richárd Szegh 的建议,添加 Procfile、.npmrc,并相应地更新 package.json 文件

    • 为 Elastic Beanstalk 添加.ebignore文件

    • 将以下buildspec.yml.ebignore文件添加到您的项目中

构建规范.yml

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 12

  pre_build:
    commands:
      - npm install
  
  build:
    commands:
      - npm run build

  post_build:
    commands:
      - rm -rf node_modules

artifacts:
  files:
    - '**/*'

.ebignore

# dependencies
node_modules/
# repository/project stuff
.idea/
.git/
.gitlab-ci.yml
README.md
# misc
.DS_Store
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# local env files
.env.local
.env.development.local
.env.test.local
.env.production.local
# non prod env files
.env.development
.env.test
  1. 导航到 AWS CodePipeline

    • 单击Create pipeline

    • 管道设置

      • 管道名称:相应命名
      • 服务角色:新服务角色
      • 角色名称:AWS 将为您创建一个默认名称
    • 源阶段:

      • 在这种情况下连接到您的存储库 GitHub(版本 2)
      • 连接到 Github
      • 存储库名称:相应的 select 存储库
      • 分支名称:select 相应分支
    • 构建阶段:

      • 构建提供程序:AWS CodeBuild
      • Region : Select 初始创建 CodeBuild 项目的区域 Step 3
      • 项目名称:Select 您创建的 CodeBuild 项目
      • 环境变量:添加任何环境变量
    • 部署阶段:

      • 部署提供商:AWS Elastic Beanstalk
      • 区域:Select 您最初创建 EB 的区域
      • 应用程序名称:Select 您在步骤 1 中创建的应用程序名称
      • 环境名称:Select 您在步骤 1 中创建的环境名称
    • 创建管道

  2. 现在您可以将更改推送到存储库,CodePipeline 将获取更改、运行构建并部署到您的 Elastic Beanstalk

这似乎对我有用,AWS Elastic Beanstalk t3.small 实例,我想使用免费套餐 t3.micro 但它对我不起作用,似乎 t3.micro 1GB memory 还不够,t3.small 有 2GB ZCD69B4957F06CD818D7BF3D61980E291 .

1) 添加部署到脚本 package.json

"scripts": {

    "deploy": "NODE_ENV=production npm run build && NODE_ENV=production npm run start"
  },

创建 file.npmrc 并添加:

unsafe-perm=true

创建 Procfile 并添加:

web: npm run deploy
  1. 当我将更新推送到 Bitbucket 时,我使用 AWS Pipeline 触发 EB 部署(如果不用于节省 $$$,我也可以禁用 Pipeline)
  2. 我使用 AWS RDS PostgreSQL 免费套餐,最新版本的 PostgreSQL 没有免费套餐版本,但以前的版本确实有免费套餐选项复选框到 select 它
  3. 我使用 AWS S3 存储桶来存储图像

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM