feat: 支持前端独立打包与测试服Docker发布
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# Full frontend source build. Compatible with the test server's Docker 18.06.
|
||||
FROM docker.m.daocloud.io/node:22-slim AS builder
|
||||
ARG PNPM_VERSION=10.15.1
|
||||
WORKDIR /src
|
||||
RUN npm install --global pnpm@${PNPM_VERSION}
|
||||
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
||||
RUN pnpm install --frozen-lockfile
|
||||
COPY . .
|
||||
RUN pnpm build
|
||||
ARG VERSION=local
|
||||
ARG SOURCE_REVISION=unknown
|
||||
ARG SOURCE_TREE=unknown
|
||||
RUN node --input-type=module -e 'import fs from "node:fs"; const info = { formatVersion: 1, version: process.env.VERSION, revision: process.env.SOURCE_REVISION, tree: process.env.SOURCE_TREE, builtAt: new Date().toISOString() }; fs.writeFileSync("dist/build-info.json", JSON.stringify(info)); fs.writeFileSync("dist/version.txt", info.version + "\n");'
|
||||
|
||||
FROM docker.m.daocloud.io/nginx:1.28-alpine@sha256:a8b39bd9cf0f83869a2162827a0caf6137ddf759d50a171451b335cecc87d236
|
||||
ARG VERSION=local
|
||||
LABEL org.opencontainers.image.revision=$VERSION
|
||||
COPY deploy/nginx.conf /etc/nginx/conf.d/default.conf
|
||||
COPY --from=builder /src/dist/ /usr/share/nginx/html/
|
||||
HEALTHCHECK --interval=15s --timeout=5s --start-period=10s --retries=3 \
|
||||
CMD wget -q -O /dev/null http://127.0.0.1/healthz || exit 1
|
||||
Reference in New Issue
Block a user