34 lines
632 B
Docker
34 lines
632 B
Docker
ARG NODE_VERSION
|
|
ARG CADDY_VERSION
|
|
|
|
# --- BUILD ---
|
|
FROM node:${NODE_VERSION}-alpine AS build
|
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
|
|
ENV ASTRO_TELEMETRY_DISABLED=1
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy depedencies
|
|
COPY package.json pnpm-lock.yaml ./
|
|
|
|
# Install pnpm with cache
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
|
|
PNPM_HOME="/pnpm" pnpm install --frozen-lockfile
|
|
|
|
# Copy all
|
|
COPY . .
|
|
|
|
# Check files
|
|
RUN pnpm run lint
|
|
RUN pnpm run check
|
|
|
|
# Build
|
|
RUN pnpm build
|
|
|
|
# --- DEPLOY ---
|
|
FROM caddy:${CADDY_VERSION}-alpine
|
|
COPY --from=build /app/dist /usr/share/caddy
|
|
COPY Caddyfile /etc/caddy/Caddyfile
|
|
|
|
EXPOSE 80 |