mcnoaa-tides/docs/Dockerfile
Ryan Malloy e519c100ed Pass DOMAIN build arg to Dockerfile build stage
Without ARG/ENV, process.env.DOMAIN was undefined during npm run build,
causing llms.txt internal links to use localhost:4321 instead of the
production domain.
2026-02-24 11:52:21 -07:00

30 lines
610 B
Docker

# --- Base ---
FROM node:22-slim AS base
WORKDIR /app
COPY package.json package-lock.json* ./
# --- Dev ---
FROM base AS dev
RUN npm ci
COPY . .
ENV ASTRO_TELEMETRY_DISABLED=1
EXPOSE 4321
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"]
# --- Build ---
FROM base AS build
RUN npm ci
COPY . .
ARG DOMAIN=localhost:4321
ENV DOMAIN=${DOMAIN}
ENV ASTRO_TELEMETRY_DISABLED=1
RUN --mount=type=cache,target=/app/.astro \
npm run build
# --- Prod ---
FROM caddy:2-alpine AS prod
RUN rm -rf /usr/share/caddy/*
COPY --from=build /app/dist /usr/share/caddy
COPY Caddyfile.prod /etc/caddy/Caddyfile
EXPOSE 4321