36 lines
714 B
Docker
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"] |