From a27dda4300a0c09d23039e798a7bc4d36f3bfe5b Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Thu, 30 Nov 2023 15:30:33 +0700 Subject: [PATCH] feat: docker build bundle client/server --- Services/.dockerignore | 6 ++++++ Services/Dockerfile | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 Services/.dockerignore create mode 100644 Services/Dockerfile diff --git a/Services/.dockerignore b/Services/.dockerignore new file mode 100644 index 0000000..0f44b51 --- /dev/null +++ b/Services/.dockerignore @@ -0,0 +1,6 @@ +.DS_Store +node_modules +dist +.env +.env.* +!.env.example diff --git a/Services/Dockerfile b/Services/Dockerfile new file mode 100644 index 0000000..916da75 --- /dev/null +++ b/Services/Dockerfile @@ -0,0 +1,32 @@ +# docker build -t docker.frappet.com/edm/core . +FROM node:20-slim AS base + +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" + +RUN corepack enable + +WORKDIR /app + +FROM base as server +COPY ./server . + +FROM server AS deps +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile + +FROM server AS build +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile +RUN pnpm run build + +FROM base as client +COPY ./client . +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile +RUN pnpm run build + +FROM base as prod +COPY --from=deps /app/node_modules /app/node_modules +COPY --from=build /app/dist /app/dist +COPY --from=server /app/static /app/static +COPY --from=client /app/dist /app/static + +CMD ["node", "./dist/app.js"]