gpt4 book ai didi

node.js - 使用 Github Actions 构建 Node/Express 并部署到 Azure Web App

转载 作者:行者123 更新时间:2023-12-03 02:29:04 30 4
gpt4 key购买 nike

我有一个使用 azure-ts-node-starter 项目的 Node/Express 项目。默认情况下,它将 Typescript 从/src 编译到/dist (下面的 package.json)

每次上传到 Github 存储库的 master 分支时,我都想 delpoy 到 Azure,但我不确定如何处理 src/dist 文件夹。

  • 我应该在我的 PC 上构建,然后提交所有内容,我认为会让我选择使用 Azure 部署中心或 Github 操作(不确定的差异)部署整个项目或...

  • 我可以将/dist 文件夹放在 gitignore 中并只上传 src 文件,然后每次推送到 master 时都以某种方式构建它吗?

如果我选择第二个选项,它是否只会部署/dist 文件夹的内容而不将所有源文件发送到 Azure?这看起来很合理,但是它不需要主目录中的一些文件(例如 package.json 文件)以便知道如何启动吗?

抱歉,如果这个问题格式不正确,我不确定我需要问什么。我想问题是提交和部署使用 dist 目录的项目的标准方式是什么?

以下是 package.json 文件中的脚本。

    "scripts": {
"build": "npm run build-ts && npm run copy-static-assets",
"build-ts": "tsc",
"copy-static-assets": "ts-node copyStaticAssets.ts",
"serve": "node dist/server.js",
"start": "npm run serve",
"watch": "concurrently -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"cyan.bold,green.bold\" \"npm run watch-ts\" \"npm run watch-node\"",
"watch-node": "nodemon dist/server.js",
"watch-ts": "tsc -w"
},

最佳答案

没有直接回答你想要的,但在过去的三年里,我在 Azure 上运行 NodeJs 时遇到了很多问题,以至于我只能依靠容器来让 NodeJs 应用程序顺利运行......

为此,我的 GitHub 操作是这样的

.github/workflows/azure.yml

name: Azure deploy
on:
push:
branches:
- master

jobs:
build-and-deploy:
runs-on: ubuntu-latest

steps:
# checkout the repo
- name: 'Checkout GitHub Action'
uses: actions/checkout@master

- name: 'Login via Azure CLI'
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}

- uses: azure/docker-login@v1
with:
login-server: my_domain.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}

- run: |
docker build . -t my_domain.azurecr.io/teamcalendar:latest
docker push my_domain.azurecr.io/teamcalendar:latest

Dockerfile

FROM node:lts-alpine

WORKDIR /usr/app

COPY package*.json ./
RUN npm install
COPY . .

CMD ["npm", "start"]

更多info on MS Docs

关于node.js - 使用 Github Actions 构建 Node/Express 并部署到 Azure Web App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65850014/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com