Files
librodrome/docker/Dockerfile
Yann Autissier 1f47533c77
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Merge branch 'develop'
2026-02-27 19:40:43 +01:00

47 lines
839 B
Docker

# syntax = docker/dockerfile:1
ARG NODE_VERSION=23.11.0-slim
FROM node:${NODE_VERSION} AS base
ARG PORT=3000
WORKDIR /app
# Build
FROM base AS build
RUN corepack enable
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile
RUN pnpm rebuild sharp
COPY . .
RUN pnpm run build
# Production
FROM base AS production
ENV PORT=${PORT}
ENV NODE_ENV=production
RUN apt-get update && apt-get -fy install curl && rm -rf /var/cache/apt/*
COPY --from=build /app/.output /app/.output
COPY --from=build /app/site /app/site
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD curl -f http://localhost:${PORT}/api/health || exit 1
EXPOSE $PORT
CMD [ "node", ".output/server/index.mjs" ]
# Development
FROM base AS development
WORKDIR /app
RUN corepack enable
ENTRYPOINT [ "pnpm", "run", "dev" ]