Files
MiragenFlow/Dockerfile
T

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