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 RUN pnpm run build # Production stage FROM docker.io/caddy:2-alpine COPY Caddyfile /etc/caddy/Caddyfile COPY --from=builder /app/dist /srv EXPOSE 3000 ENTRYPOINT ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]