From 542df18723f8000c94d896f95e136fcd6e5cc7b4 Mon Sep 17 00:00:00 2001 From: AnsonCar Date: Sat, 23 Nov 2024 20:20:55 +0800 Subject: [PATCH] feat: add docker --- .dockerignore | 8 ++++++++ docker-compose.product.yml | 8 ++++++++ docker/dockerfile.product | 23 +++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 .dockerignore create mode 100644 docker-compose.product.yml create mode 100644 docker/dockerfile.product diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..05f381c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +/node_modules +/.git +/.gitignore +/.vscode +/.DS_Store +/*.md +/dist + diff --git a/docker-compose.product.yml b/docker-compose.product.yml new file mode 100644 index 0000000..99664f2 --- /dev/null +++ b/docker-compose.product.yml @@ -0,0 +1,8 @@ +services: + nove-admin: + build: + context: . + dockerfile: ./docker/dockerfile.product + container_name: nove-admin + ports: + - 80:80 diff --git a/docker/dockerfile.product b/docker/dockerfile.product new file mode 100644 index 0000000..cf16abe --- /dev/null +++ b/docker/dockerfile.product @@ -0,0 +1,23 @@ +FROM node:20-slim AS base +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable +COPY . /app +WORKDIR /app + +FROM base AS prod-deps +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile + +FROM base AS builder +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile +RUN pnpm run build + +FROM nginx:1.23.1-alpine + +WORKDIR /www + +COPY --from=builder /app/dist/ . + +COPY ./nginx.conf /etc/nginx/conf.d/default.conf + +EXPOSE 80