39 lines
695 B
Docker
39 lines
695 B
Docker
|
|
FROM node:24.1.0-bookworm AS build
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy package files and install dependencies
|
|
COPY package*.json ./
|
|
RUN npm ci
|
|
|
|
# Copy app source code
|
|
COPY . .
|
|
|
|
ENV NEXT_PUBLIC_RYBBIT_HOST=https://app.rybbit.io
|
|
|
|
# Build the Next.js app
|
|
RUN npm run build
|
|
|
|
# Runtime stage
|
|
FROM node:24.1.0-bookworm AS runtime
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy package files and install only production dependencies
|
|
COPY package*.json ./
|
|
RUN npm ci --only=production
|
|
|
|
# Copy built app and public assets from build stage
|
|
COPY --from=build /app/.next ./.next
|
|
COPY --from=build /app/public ./public
|
|
|
|
# Expose port 3000
|
|
EXPOSE 3000
|
|
|
|
# Use unprivileged user for security
|
|
USER node
|
|
|
|
# Start the Next.js app
|
|
CMD ["npm", "start"]
|
|
|