From 0c1c9d202debd367456c7809c6b3a13369b6ba77 Mon Sep 17 00:00:00 2001 From: zias Date: Tue, 16 Dec 2025 13:51:27 +0100 Subject: [PATCH] fix:docker --- Dockerfile | 41 ++++++++++++++++++++++++++++++----------- docker-compose.yml | 12 ++++++++++++ 2 files changed, 42 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4d4ca56..e71fdd4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,36 +1,55 @@ # Build stage FROM node:20-alpine AS builder -# Install pnpm -RUN npm install -g pnpm - WORKDIR /app # Copy package files -COPY package.json pnpm-lock.yaml ./ +COPY package.json package-lock.json* ./ # Install dependencies -RUN pnpm install --frozen-lockfile +RUN npm ci # Copy source code 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 -RUN pnpm run build +RUN npm run build # Production stage FROM node:20-alpine -# Install pnpm -RUN npm install -g pnpm - WORKDIR /app # Copy package files -COPY package.json pnpm-lock.yaml ./ +COPY package.json package-lock.json* ./ # Install production dependencies only -RUN pnpm install --prod --frozen-lockfile +RUN npm ci --omit=dev # Copy built app from builder COPY --from=builder /app/build ./build diff --git a/docker-compose.yml b/docker-compose.yml index 7b87f98..9e2b511 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,6 +21,18 @@ services: build: context: . 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 restart: unless-stopped ports: