Files
ArkLinks/Dockerfile
2026-01-15 12:00:40 +02:00

46 lines
880 B
Docker

# Build stage
FROM node:20-alpine AS build
WORKDIR /app
# Copy package files
COPY package*.json ./
# Install dependencies
RUN npm ci
# Copy source code
COPY . .
# Build args for environment variables
ARG VITE_APPWRITE_ENDPOINT
ARG VITE_APPWRITE_PROJECT_ID
# Set environment variables for build
ENV VITE_APPWRITE_ENDPOINT=$VITE_APPWRITE_ENDPOINT
ENV VITE_APPWRITE_PROJECT_ID=$VITE_APPWRITE_PROJECT_ID
# Build the app
RUN npm run build
# Production stage - lightweight Node.js server
FROM node:20-alpine
WORKDIR /app
# Install serve globally
RUN npm install -g serve
# Copy built files from build stage
COPY --from=build /app/dist ./dist
# Run as non-root user for security
RUN addgroup -g 1001 -S nodejs && \
adduser -S nodejs -u 1001 -G nodejs && \
chown -R nodejs:nodejs /app
USER nodejs
# Start serve on port 3000
CMD ["serve", "-s", "dist", "-l", "3000"]