From 0f8b07a05eb48ace9ed2ae26d259775e45f5fd9d Mon Sep 17 00:00:00 2001 From: Noa Virellia Date: Wed, 18 Feb 2026 12:02:22 +0800 Subject: [PATCH] feat: improve containerfile Signed-off-by: Noa Virellia --- .dockerignore | 9 +++++++++ Containerfile | 28 ++++++++++++++++++++-------- 2 files changed, 29 insertions(+), 8 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e789839 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +README.md +build +dist +node_modules +LICENSE +package-lock.json +.git +.DS_Store +.env diff --git a/Containerfile b/Containerfile index 7222e84..a5d3105 100644 --- a/Containerfile +++ b/Containerfile @@ -1,16 +1,28 @@ -FROM docker.io/node:22-alpine AS client-cms-build -RUN apk add just -RUN npm install -g corepack && \ - corepack enable +FROM docker.io/node:22-alpine AS builder + +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +ENV CI=true + +# Enable corepack +RUN corepack enable + WORKDIR /app + +# Install dependencies with caching +COPY package.json pnpm-lock.yaml ./ +RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ + pnpm install --frozen-lockfile + +# Build application +COPY . . ARG VITE_APP_BASE_URL ENV VITE_APP_BASE_URL=$VITE_APP_BASE_URL -COPY . . -RUN pnpm install -RUN pnpm run build --outDir /app/dist +RUN pnpm run build +# Production stage FROM docker.io/caddy:2-alpine COPY Caddyfile /etc/caddy/Caddyfile -COPY --from=client-cms-build /app/dist /srv +COPY --from=builder /app/dist /srv EXPOSE 3000 ENTRYPOINT ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]