formies/Dockerfile

36 lines
714 B
Docker

FROM node:24-alpine AS builder
WORKDIR /usr/src/app
# Install build dependencies for sqlite3
RUN apk add --no-cache python3 make g++ sqlite-dev
COPY package*.json ./
RUN npm ci
COPY . .
FROM node:24-alpine
WORKDIR /usr/src/app
# Install runtime dependencies for sqlite3
RUN apk add --no-cache sqlite-libs python3 make g++ sqlite-dev
# Create a non-root user
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
COPY --from=builder /usr/src/app/package*.json ./
COPY --from=builder /usr/src/app/ ./
# Rebuild sqlite3 for the target architecture
RUN npm rebuild sqlite3
# Set ownership to non-root user
RUN chown -R appuser:appgroup /usr/src/app
USER appuser
EXPOSE 3000
CMD ["node", "server.js"]