Files
photo-showcase/Dockerfile
2025-12-13 20:08:01 +01:00

39 lines
583 B
Docker

# Build Frontend
FROM node:22-alpine as build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
# Build-time variables
ARG VITE_ADMIN_PIN
ENV VITE_ADMIN_PIN=$VITE_ADMIN_PIN
RUN npm run build
# Production Server (Node.js)
FROM node:22-alpine
WORKDIR /app
# Install only production dependencies for the server
COPY package*.json ./
RUN npm install --omit=dev
# Copy built frontend
COPY --from=build /app/dist ./dist
# Copy backend source
COPY server.js .
# Create storage directories
RUN mkdir -p uploads data
ENV PORT=8080
EXPOSE 8080
CMD ["node", "server.js"]