From 776ed29bcad7b7a1f81b32ae450561f007a3379c Mon Sep 17 00:00:00 2001 From: theoleuthardt Date: Fri, 28 Feb 2025 11:29:44 +0100 Subject: [PATCH] fix: frontend and backend now get variables at build time not runtime --- .github/workflows/deploy.yml | 4 ++++ backend/Dockerfile | 4 ++++ backend/server.ts | 4 ---- docker-compose.yaml | 10 ++++++---- frontend/Dockerfile | 3 +++ frontend/next.config.ts | 3 --- 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 34e50ba..1250eea 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -39,6 +39,8 @@ jobs: context: ./frontend push: true tags: ${{ secrets.DOCKERHUB_USERNAME }}/werkzeugkiste-frontend:latest + build-args: | + NEXT_PUBLIC_BACKEND_URL=${{ secrets.NEXT_PUBLIC_BACKEND_URL }} - name: Build and Push Backend uses: docker/build-push-action@v6 @@ -46,6 +48,8 @@ jobs: context: ./backend push: true tags: ${{ secrets.DOCKERHUB_USERNAME }}/werkzeugkiste-backend:latest + build-args: | + CORS_ALLOWED_ORIGIN=${{ secrets.CORS_ALLOWED_ORIGIN }} deploy-on-server: needs: docker-build-push diff --git a/backend/Dockerfile b/backend/Dockerfile index e602f45..c6a7478 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -61,7 +61,11 @@ USER fastify EXPOSE 4000 +ARG CORS_ALLOWED_ORIGIN +ENV CORS_ALLOWED_ORIGIN=$CORS_ALLOWED_ORIGIN + ENV PORT=4000 ENV HOSTNAME="0.0.0.0" + CMD ["node", "dist/server.js"] \ No newline at end of file diff --git a/backend/server.ts b/backend/server.ts index 6259cb5..d21e70e 100644 --- a/backend/server.ts +++ b/backend/server.ts @@ -10,10 +10,6 @@ import { generateQRCode } from "./src/routes/generateqrcode.route"; import { wordCounter } from "./src/routes/wordcounter.route"; import { videoToAudio } from "./src/routes/videotoaudio.route"; import { removeBG } from "./src/routes/removebg.route"; -import dotenv from "dotenv"; -import path from "node:path"; - -dotenv.config({ path: path.resolve(__dirname, "../.env") }); const app = Fastify({ logger: true }); diff --git a/docker-compose.yaml b/docker-compose.yaml index f034f04..aeb5cd4 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,30 +1,32 @@ services: frontend: + env_file: .env build: context: ./frontend dockerfile: Dockerfile + args: + NEXT_PUBLIC_BACKEND_URL: ${NEXT_PUBLIC_BACKEND_URL} container_name: werkzeugkiste-frontend - env_file: .env environment: - NODE_ENV=${NODE_ENV} - HOSTNAME=${HOSTNAME} - PORT=${FRONTEND_PORT} - - NEXT_PUBLIC_BACKEND_URL=${NEXT_PUBLIC_BACKEND_URL} ports: - "${FRONTEND_PORT}:3000" restart: unless-stopped backend: + env_file: .env build: context: ./backend dockerfile: Dockerfile + args: + CORS_ALLOWED_ORIGIN: ${CORS_ALLOWED_ORIGIN} container_name: werkzeugkiste-backend - env_file: .env environment: - NODE_ENV=${NODE_ENV} - HOSTNAME=${HOSTNAME} - PORT=${BACKEND_PORT} - - CORS_ALLOWED_ORIGIN=${CORS_ALLOWED_ORIGIN} ports: - "${BACKEND_PORT}:4000" restart: unless-stopped diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 4d67048..dc4130c 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -24,6 +24,9 @@ WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . +ARG NEXT_PUBLIC_BACKEND_URL +ENV NEXT_PUBLIC_BACKEND_URL=$NEXT_PUBLIC_BACKEND_URL + # Next.js collects completely anonymous telemetry data about general usage. # Learn more here: https://nextjs.org/telemetry # Uncomment the following line in case you want to disable telemetry during the build. diff --git a/frontend/next.config.ts b/frontend/next.config.ts index 79cebf3..61ab14e 100644 --- a/frontend/next.config.ts +++ b/frontend/next.config.ts @@ -1,7 +1,4 @@ import type { NextConfig } from "next"; -import dotenv from "dotenv"; - -dotenv.config({ path: "../.env" }); const nextConfig: NextConfig = { output: "standalone",