39 lines
973 B
Docker
39 lines
973 B
Docker
# Node Debian -- multi-arch (amd64 + arm64)
|
|
FROM node:22-bookworm-slim AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# Install bun
|
|
RUN npm install -g bun@1.3.11
|
|
|
|
# Accept build arguments for environment variables
|
|
ARG AUTH_ENABLED
|
|
ARG AUTH_SECRET
|
|
ARG APPWRITE_ENDPOINT
|
|
ARG APPWRITE_PROJECT_ID
|
|
ARG POCKETBASE_URL
|
|
ARG SESSION_MAX_AGE
|
|
|
|
# Copy package files first for caching
|
|
COPY package.json bun.lock* ./
|
|
|
|
# Install dependencies (Node)
|
|
RUN bun install
|
|
|
|
# Copy the rest of the project
|
|
COPY . .
|
|
|
|
# Build the project
|
|
RUN bun run build
|
|
|
|
# Serve with nginx
|
|
FROM nginx:1.28.2-alpine
|
|
|
|
COPY --from=builder /app/dist /usr/share/nginx/html
|
|
|
|
RUN echo 'server { listen 4173; root /usr/share/nginx/html; index index.html; location / { try_files $uri $uri/ /index.html; } location ~* \.(?:css|js|mjs|map|json|wasm|mp3|flac|wav|ogg|png|jpg|jpeg|svg|webp|ico|gz|br|ttf|woff2?)$ { try_files $uri =404; } }' > /etc/nginx/conf.d/default.conf
|
|
|
|
# Expose the nginx port
|
|
EXPOSE 4173
|
|
|
|
CMD ["nginx", "-g", "daemon off;"]
|