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