正如标题所说,我正在尝试部署我的 Laravel-Angular 直接从 申请Github 至 AWS EC2 使用 的实例Github 操作 .
在我的申请中有 3 角 8+ 在部署之前需要构建的项目。哪里不需要构建laravel。
可用的解决方案建议使用 AWS Elastic Beanstalk 部署代码。但是,如果要这样做,如何将 Elastic Beanstalk 附加到现有实例还不够清楚。
有没有办法将代码部署到 AWS EC2 不使用 Elastic Beanstalk ?
这是我的 Github 操作 构建.yml:
name: Build Develop Branch
on:
push:
branches: [ develop ]
pull_request:
branches: [ develop ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- name: Code Checkout
uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: App 1 npm install
run: npm install
working-directory: angular-app-1
- name: App 1 Build
run: npm run build:staging
working-directory: angular-app-1
- name: App 2 npm install
run: npm install
working-directory: angular-app-2
- name: App 2 Build
run: node node_modules/@angular/cli/bin/ng build --configuration=staging
working-directory: angular-app-2
- name: App 3 npm install
run: npm install
working-directory: angular-app-3
- name: App 3 Build
run: node node_modules/@angular/cli/bin/ng build --configuration=staging
working-directory: angular-app-3
最佳答案
Is there a way to deploy code to AWS EC2 without using Elastic Beanstalk?
我找到了一种使用 GitHub Actions 部署到 EC2 实例(或任何通过
rsync
接受 ssh
命令的服务器)的简单方法。 .我在 repo 的 .github/workflows 文件夹中有一个简单的文件,其中 GitHub 操作 每当推送到我的 GitHub 存储库时,都会运行以部署到我的 EC2 实例。
没有麻烦,没有大惊小怪,没有特殊的咒语或拜占庭式的 AWS 配置细节。
文件 .github/workflows/pushtoec2.yml:
name: Push-to-EC2
on: push
jobs:
deploy:
name: Push to EC2 Instance
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v1
- name: Deploy to my EC2 instance
uses: easingthemes/ssh-deploy@v2.1.5
env:
SSH_PRIVATE_KEY: ${{ secrets.EC2_SSH_KEY }}
SOURCE: "./"
REMOTE_HOST: "ec2-34-213-48-149.us-west-2.compute.amazonaws.com"
REMOTE_USER: "ec2-user"
TARGET: "/home/ec2-user/SampleExpressApp"
详情ssh deploy上面使用的 GitHub 操作。
关于amazon-web-services - 使用 Github Actions 将代码直接部署到 AWS EC2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62087265/