diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 270f8a7..eb46969 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -10,12 +10,19 @@ jobs: steps: - name: Checkout uses: "http://8.161.227.145:3000/huanghaosheng/checkout@releases/v4" - with: - ref: ${{ github.ref }} - name: Install Docker CLI run: apk add --no-cache docker-cli docker-cli-compose rsync + - name: Switch to trigger branch + run: | + git config --global --add safe.directory "$(pwd)" + echo "触发分支: ${GITHUB_REF_NAME}" + git fetch origin "${GITHUB_REF_NAME}" --depth=1 + git checkout "${GITHUB_REF_NAME}" + git reset --hard "origin/${GITHUB_REF_NAME}" + echo "当前提交: $(git log -1 --oneline)" + - name: Sync to deploy directory run: | mkdir -p /root/camtalk diff --git a/backend/Dockerfile b/backend/Dockerfile index f2bfb1b..60b901e 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -8,11 +8,19 @@ ENV GOPROXY=https://goproxy.cn,https://goproxy.io,direct # 先复制依赖清单,利用 Docker 缓存层 COPY go.mod go.sum ./ -RUN go mod download + +# --mount=type=cache 复用 Go module 缓存,依赖不变时跳过下载 +RUN --mount=type=cache,target=/go/pkg/mod \ + go mod download # 复制源码并构建 COPY . . -RUN CGO_ENABLED=0 GOOS=linux go build -o /camtalk ./cmd/server + +# 复用 module 缓存 + 编译缓存;-ldflags="-s -w" 裁剪符号表减小 ~30% 体积 +RUN --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + CGO_ENABLED=0 GOOS=linux \ + go build -ldflags="-s -w" -o /camtalk ./cmd/server # ---- 运行阶段 ---- FROM alpine:3.20 diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 8a66c0a..39a9c04 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -8,11 +8,17 @@ RUN npm config set registry https://registry.npmmirror.com # 先复制依赖清单,利用 Docker 缓存层 COPY package.json package-lock.json ./ -RUN npm ci -# 复制源码并构建 +# --mount=type=cache 复用 npm 缓存,依赖不变时跳过下载 +# --no-audit 跳过安全审计,提速明显 +RUN --mount=type=cache,target=/root/.npm \ + npm ci --no-audit + +# 复制源码并构建(Vite 构建缓存也复用) COPY . . -RUN npm run build +RUN --mount=type=cache,target=/root/.npm \ + --mount=type=cache,target=/app/node_modules/.vite \ + npm run build # ---- 运行阶段 ---- FROM nginx:stable-alpine