23 lines
494 B
Docker
23 lines
494 B
Docker
# Astro Production Dockerfile
|
|
FROM node:20-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy package files
|
|
COPY package*.json ./
|
|
|
|
# Install dependencies (use npm install if no lock file)
|
|
RUN if [ -f package-lock.json ]; then npm ci --omit=dev; else npm install --omit=dev; fi
|
|
|
|
# Copy all source code
|
|
COPY . .
|
|
|
|
# Build Astro project (includes public folder in dist)
|
|
RUN npm run build
|
|
|
|
# Expose port
|
|
EXPOSE 4321
|
|
|
|
# Start Astro preview server
|
|
CMD ["npm", "run", "preview", "--", "--host", "0.0.0.0", "--port", "4321"]
|