diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index b7d56fb..fb52fb7 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -1,9 +1,9 @@ -name: 构建并部署前端到测试环境 +name: 构建并部署前端到生产环境 on: push: branches: - - main + - develop - dev - test @@ -27,7 +27,7 @@ jobs: - name: 设置镜像标签 id: tag run: | - if [ "${{ github.ref }}" = "refs/heads/main" ]; then + if [ "${{ github.ref }}" = "refs/heads/develop" ]; then echo "tag=latest" >> $GITHUB_OUTPUT elif [ "${{ github.ref }}" = "refs/heads/dev" ]; then echo "tag=dev" >> $GITHUB_OUTPUT @@ -51,15 +51,11 @@ jobs: docker push ${{ env.IMAGE_NAME }}:${{ steps.tag.outputs.tag }} docker push ${{ env.IMAGE_NAME }}:${{ github.sha }} - - name: 部署到本地(仅 main 分支) - if: github.ref == 'refs/heads/main' + - name: 部署到本地(仅 develop 分支) + if: github.ref == 'refs/heads/develop' run: | mkdir -p ${{ env.DEPLOY_DIR }} - echo "当前工作目录: $(pwd)" - echo "当前目录内容:" - ls -la - echo "更新部署配置文件..." cp -v docker-compose.prod.yml ${{ env.DEPLOY_DIR }}/ diff --git a/Dockerfile b/Dockerfile index 218ed88..4eece0d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,25 +12,28 @@ WORKDIR /build # 安装 pnpm RUN corepack enable && corepack prepare pnpm@10.15.0 --activate -# 设置 npm 镜像源 +# 设置 pnpm 镜像源 RUN pnpm config set registry https://registry.npmmirror.com # 复制 package.json 和 pnpm-lock.yaml(利用 Docker 缓存) COPY package.json pnpm-lock.yaml ./ -# 安装依赖 +# 安装所有依赖 RUN pnpm install --frozen-lockfile +# 安装 git (用于获取 commit 信息) +RUN apk add --no-cache git + # 复制源代码 COPY . . -# 构建 H5 测试版本 -RUN pnpm build:h5-test +# 构建 H5 生产版本 +RUN pnpm run build:h5 # ================================ # 阶段 2: 运行阶段 # ================================ -FROM --platform=linux/amd64 nginx:alpine +FROM --platform=linux/amd64 nginx:1.31.2-alpine # 使用阿里云镜像源加速 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 6bc4bd3..0b3bd1f 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -9,6 +9,9 @@ services: - '3002:80' networks: - junhong-network + tmpfs: + - /run:rw + - /tmp:rw healthcheck: test: ['CMD', 'wget', '--no-verbose', '--tries=1', '--spider', 'http://127.0.0.1:80/health'] interval: 30s