fix:docker

This commit is contained in:
2025-12-16 13:51:27 +01:00
parent ae6a96d73b
commit 0c1c9d202d
2 changed files with 42 additions and 11 deletions

View File

@@ -1,36 +1,55 @@
# Build stage # Build stage
FROM node:20-alpine AS builder FROM node:20-alpine AS builder
# Install pnpm
RUN npm install -g pnpm
WORKDIR /app WORKDIR /app
# Copy package files # Copy package files
COPY package.json pnpm-lock.yaml ./ COPY package.json package-lock.json* ./
# Install dependencies # Install dependencies
RUN pnpm install --frozen-lockfile RUN npm ci
# Copy source code # Copy source code
COPY . . COPY . .
# Set build-time environment variables
ARG DATABASE_URL
ARG GOOGLE_CLIENT_ID
ARG GOOGLE_CLIENT_SECRET
ARG R2_ACCOUNT_ID
ARG R2_ACCESS_KEY_ID
ARG R2_SECRET_ACCESS_KEY
ARG R2_BUCKET_NAME
ARG GOOGLE_MAPS_API_KEY
ARG VAPID_PUBLIC_KEY
ARG VAPID_PRIVATE_KEY
ARG VAPID_SUBJECT
ENV DATABASE_URL=${DATABASE_URL}
ENV GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
ENV GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
ENV R2_ACCOUNT_ID=${R2_ACCOUNT_ID}
ENV R2_ACCESS_KEY_ID=${R2_ACCESS_KEY_ID}
ENV R2_SECRET_ACCESS_KEY=${R2_SECRET_ACCESS_KEY}
ENV R2_BUCKET_NAME=${R2_BUCKET_NAME}
ENV GOOGLE_MAPS_API_KEY=${GOOGLE_MAPS_API_KEY}
ENV VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY}
ENV VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY}
ENV VAPID_SUBJECT=${VAPID_SUBJECT}
# Build the app # Build the app
RUN pnpm run build RUN npm run build
# Production stage # Production stage
FROM node:20-alpine FROM node:20-alpine
# Install pnpm
RUN npm install -g pnpm
WORKDIR /app WORKDIR /app
# Copy package files # Copy package files
COPY package.json pnpm-lock.yaml ./ COPY package.json package-lock.json* ./
# Install production dependencies only # Install production dependencies only
RUN pnpm install --prod --frozen-lockfile RUN npm ci --omit=dev
# Copy built app from builder # Copy built app from builder
COPY --from=builder /app/build ./build COPY --from=builder /app/build ./build

View File

@@ -21,6 +21,18 @@ services:
build: build:
context: . context: .
dockerfile: Dockerfile dockerfile: Dockerfile
args:
- DATABASE_URL=postgresql://serengo:serengo_password@postgres:5432/serengo
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
- R2_ACCOUNT_ID=${R2_ACCOUNT_ID}
- R2_ACCESS_KEY_ID=${R2_ACCESS_KEY_ID}
- R2_SECRET_ACCESS_KEY=${R2_SECRET_ACCESS_KEY}
- R2_BUCKET_NAME=${R2_BUCKET_NAME}
- GOOGLE_MAPS_API_KEY=${GOOGLE_MAPS_API_KEY}
- VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY}
- VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY}
- VAPID_SUBJECT=${VAPID_SUBJECT}
container_name: serengo-app container_name: serengo-app
restart: unless-stopped restart: unless-stopped
ports: ports: