33 lines
1.1 KiB
Docker
33 lines
1.1 KiB
Docker
# 构建 Vite 前端产物。
|
|
FROM oven/bun:1.3.13 AS web-build
|
|
|
|
WORKDIR /app/web
|
|
COPY web/package.json web/bun.lock ./
|
|
COPY packages/contracts/package.json /app/packages/contracts/package.json
|
|
COPY packages/contracts /app/packages/contracts
|
|
RUN --mount=type=cache,target=/root/.bun/install/cache bun install --cache-dir=/root/.bun/install/cache
|
|
COPY VERSION /app/VERSION
|
|
COPY CHANGELOG.md /app/CHANGELOG.md
|
|
COPY web ./
|
|
RUN bun run build
|
|
|
|
# 构建后台管理端。它最终与前台一起由同一个 Nginx 端口提供服务。
|
|
FROM oven/bun:1.3.13 AS admin-build
|
|
|
|
WORKDIR /app/admin
|
|
COPY admin/package.json admin/package-lock.json ./
|
|
COPY packages/contracts/package.json /app/packages/contracts/package.json
|
|
COPY packages/contracts /app/packages/contracts
|
|
RUN npm ci --ignore-scripts
|
|
COPY admin ./
|
|
RUN npm run build
|
|
|
|
# 运行镜像:提供前台和管理台静态资源;API 网关由同一 compose 中的 server 服务通过 Nginx 同源反代。
|
|
FROM nginx:1.27-alpine
|
|
|
|
COPY --from=web-build /app/web/dist /usr/share/nginx/html
|
|
COPY --from=admin-build /app/admin/dist /usr/share/nginx/html/admin
|
|
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
|
|
|
EXPOSE 3000
|