docker/Dockerfile.grove-apiblame
View source
3e3af551# Grove API Server Dockerfile
135dfe52FROM node:22-alpine AS builder
3e3af553
3e3af554WORKDIR /app
3e3af555
3e3af556COPY api/package.json api/package-lock.json* ./
135dfe57RUN npm install
135dfe58
135dfe59COPY api/src/ ./src/
135dfe510COPY api/tsconfig.json ./
135dfe511RUN npm run build
135dfe512
135dfe513FROM node:22-alpine AS runner
135dfe514
791afd415RUN apk add --no-cache docker-cli
80fafdf16
135dfe517WORKDIR /app
135dfe518
135dfe519COPY --from=builder /app/package.json /app/package-lock.json* ./
3e3af5520RUN npm install --production
3e3af5521
135dfe522COPY --from=builder /app/dist/ ./dist/
3e3af5523
3e3af5524RUN mkdir -p /data
3e3af5525
3e3af5526ENV DATABASE_PATH=/data/grove.db
3e3af5527ENV PORT=4000
3e3af5528
3e3af5529EXPOSE 4000
3e3af5530
fb964da31HEALTHCHECK --interval=10s --timeout=3s --start-period=15s --retries=3 \
39ac15732 CMD wget -qO- http://127.0.0.1:4000/health || exit 1
fb964da33
3e3af5534CMD ["node", "dist/server.js"]