Files
BRETT/Dockerfile
T
FliesentischKingandDevin 16c5ff8ea4 Add Dockerfile and production build setup for Coolify
The prod compose file references `build: .`, so add the missing
two-stage Dockerfile, run migrations + permission seeding on
container start (not only in dev), and add sharp for IPX.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-25 14:04:00 +01:00

26 lines
861 B
Docker

# syntax=docker/dockerfile:1
# Build stage: full source + dev deps, produces .output
# Debian base (not Alpine): ffmpeg-static ships a glibc binary
FROM node:24-slim AS build
WORKDIR /app
COPY . .
RUN npm ci && npm run build
# Runtime stage: only the Nitro output + runtime extras
FROM node:24-slim
WORKDIR /app
ENV NODE_ENV=production \
HOST=0.0.0.0 \
NITRO_PORT=3000
COPY --from=build /app/.output ./.output
# Drizzle migrations folder is read relative to cwd at server start
COPY --from=build /app/server/db/migrations ./server/db/migrations
# ffmpeg-static's binary is not picked up by Nitro's dependency tracing
COPY --from=build /app/node_modules/ffmpeg-static /app/node_modules/ffmpeg-static
COPY --from=build /app/node_modules/ffmpeg-static /app/.output/server/node_modules/ffmpeg-static
EXPOSE 3000
CMD ["node", ".output/server/index.mjs"]