From 94dd00b9cafeaa889b558620043537083810492a Mon Sep 17 00:00:00 2001 From: Danel Kungla Date: Fri, 29 Aug 2025 18:05:29 +0300 Subject: [PATCH 01/15] Add data.sql to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index f96346c..93048af 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,4 @@ yarn-error.log* next-env.d.ts dump.sql +data.sql \ No newline at end of file From 1de564b9176f7ab08214a605d2272e4a85aa3e1a Mon Sep 17 00:00:00 2001 From: Karli Date: Wed, 3 Sep 2025 15:15:02 +0300 Subject: [PATCH 02/15] rerun codepipeline From 354a0c04ee443197b72b5c6b70f71cb7ee61adec Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 01:44:05 +0300 Subject: [PATCH 03/15] prefer to use env from parameter store --- .env.production | 10 +++++----- .env.staging | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.env.production b/.env.production index 90b9aaf..1301dfc 100644 --- a/.env.production +++ b/.env.production @@ -6,10 +6,10 @@ ## PUBLIC KEYS OR CONFIGURATION ARE OKAY TO BE PLACED HERE. # SUPABASE -NEXT_PUBLIC_SUPABASE_URL=https://oqsdacktkhmbylmzstjq.supabase.co -NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im9xc2RhY2t0a2htYnlsbXpzdGpxIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDY1MjgxMjMsImV4cCI6MjA2MjEwNDEyM30.LdHCTWxijFmhXdnT9KVuLRAVbtSwY7OO-oLtpd8GmO0 +# NEXT_PUBLIC_SUPABASE_URL=https://oqsdacktkhmbylmzstjq.supabase.co +# NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im9xc2RhY2t0a2htYnlsbXpzdGpxIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDY1MjgxMjMsImV4cCI6MjA2MjEwNDEyM30.LdHCTWxijFmhXdnT9KVuLRAVbtSwY7OO-oLtpd8GmO0 -NEXT_PUBLIC_SITE_URL=https://test.medreport.ee +# NEXT_PUBLIC_SITE_URL=https://test.medreport.ee -# MONTONIO -NEXT_PUBLIC_MONTONIO_ACCESS_KEY=7da5d7fa-3383-4997-9435-46aa818f4ead +# # MONTONIO +# NEXT_PUBLIC_MONTONIO_ACCESS_KEY=7da5d7fa-3383-4997-9435-46aa818f4ead diff --git a/.env.staging b/.env.staging index 8c2e346..7d7ee16 100644 --- a/.env.staging +++ b/.env.staging @@ -6,10 +6,10 @@ ## PUBLIC KEYS OR CONFIGURATION ARE OKAY TO BE PLACED HERE. # SUPABASE -NEXT_PUBLIC_SUPABASE_URL=https://klocrucggryikaxzvxgc.supabase.co -NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imtsb2NydWNnZ3J5aWtheHp2eGdjIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTY5ODQ2MjgsImV4cCI6MjA3MjU2MDYyOH0.2XOQngowcymiSUZO_XEEWAWzco2uRIjwG7TAeRRLIdU +# NEXT_PUBLIC_SUPABASE_URL=https://klocrucggryikaxzvxgc.supabase.co +# NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imtsb2NydWNnZ3J5aWtheHp2eGdjIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTY5ODQ2MjgsImV4cCI6MjA3MjU2MDYyOH0.2XOQngowcymiSUZO_XEEWAWzco2uRIjwG7TAeRRLIdU -NEXT_PUBLIC_SITE_URL=https://test.medreport.ee +# NEXT_PUBLIC_SITE_URL=https://test.medreport.ee -# MONTONIO -NEXT_PUBLIC_MONTONIO_ACCESS_KEY=7da5d7fa-3383-4997-9435-46aa818f4ead +# # MONTONIO +# NEXT_PUBLIC_MONTONIO_ACCESS_KEY=7da5d7fa-3383-4997-9435-46aa818f4ead From 42bebb6d93fed9bacfeb8fc7a7a29e99f5086962 Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 11:39:12 +0300 Subject: [PATCH 04/15] all needed variables in buildtime --- Dockerfile | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 589d56d..50f3f3d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,16 +3,42 @@ FROM node:20-alpine as builder WORKDIR /app -RUN npm install -g pnpm@9 +RUN npm install -g pnpm@10 RUN npm install -g dotenv-cli +ARG MEDUSA_BACKEND_URL +ARG NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY +ARG SUPABASE_SERVICE_ROLE_KEY +ARG NEXT_PUBLIC_SUPABASE_URL +ARG NEXT_PUBLIC_SUPABASE_ANON_KEY +ARG NEXT_PUBLIC_SITE_URL +ARG NEXT_PUBLIC_MONTONIO_ACCESS_KEY + COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY packages packages COPY tooling tooling COPY .env .env -COPY .env.production .env.production COPY .env.staging .env.staging +RUN cat > .env.local << EOF +# PRODUCTION BUILD ENVIRONMENT VARIABLES + +# MEDUSA +MEDUSA_BACKEND_URL=${MEDUSA_BACKEND_URL} +NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY=${NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY} + +# SUPABASE +SUPABASE_SERVICE_ROLE_KEY=${SUPABASE_SERVICE_ROLE_KEY} +NEXT_PUBLIC_SUPABASE_URL=${NEXT_PUBLIC_SUPABASE_URL} +NEXT_PUBLIC_SUPABASE_ANON_KEY=${NEXT_PUBLIC_SUPABASE_ANON_KEY} + +# SITE +NEXT_PUBLIC_SITE_URL=${NEXT_PUBLIC_SITE_URL} + +# MONTONIO +NEXT_PUBLIC_MONTONIO_ACCESS_KEY=${NEXT_PUBLIC_MONTONIO_ACCESS_KEY} +EOF + # Load env file and echo a specific variable # RUN dotenv -e .env -- printenv | grep 'SUPABASE' || true RUN pnpm install --frozen-lockfile @@ -38,7 +64,8 @@ WORKDIR /app COPY --from=builder /app ./ -RUN cp ".env.${APP_ENV}" .env.local +COPY --from=builder /app/.env.local .env.local +COPY --from=builder /app/.env.${APP_ENV} .env.production RUN npm install -g pnpm@9 \ && pnpm install --prod --frozen-lockfile @@ -46,7 +73,8 @@ RUN npm install -g pnpm@9 \ ENV NODE_ENV=production # 🔍 Optional: Log key envs for debug -RUN echo "📄 .env contents:" && cat .env.local \ +RUN echo "📄 .env.local contents:" && cat .env.local \ + && echo "📄 .env.production contents:" && cat .env.production \ && echo "🔧 Current ENV available to Next.js build:" && printenv | grep -E 'SUPABASE|STRIPE|NEXT|NODE_ENV' || true From f8765dce49558673814798f62fd3693d40d3a36d Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 11:44:25 +0300 Subject: [PATCH 05/15] update dockerfile --- Dockerfile | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/Dockerfile b/Dockerfile index 50f3f3d..d72c6bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,7 @@ ARG NEXT_PUBLIC_SUPABASE_URL ARG NEXT_PUBLIC_SUPABASE_ANON_KEY ARG NEXT_PUBLIC_SITE_URL ARG NEXT_PUBLIC_MONTONIO_ACCESS_KEY +ARG JOBS_API_TOKEN COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY packages packages @@ -20,24 +21,25 @@ COPY tooling tooling COPY .env .env COPY .env.staging .env.staging -RUN cat > .env.local << EOF -# PRODUCTION BUILD ENVIRONMENT VARIABLES - -# MEDUSA -MEDUSA_BACKEND_URL=${MEDUSA_BACKEND_URL} -NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY=${NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY} - -# SUPABASE -SUPABASE_SERVICE_ROLE_KEY=${SUPABASE_SERVICE_ROLE_KEY} -NEXT_PUBLIC_SUPABASE_URL=${NEXT_PUBLIC_SUPABASE_URL} -NEXT_PUBLIC_SUPABASE_ANON_KEY=${NEXT_PUBLIC_SUPABASE_ANON_KEY} - -# SITE -NEXT_PUBLIC_SITE_URL=${NEXT_PUBLIC_SITE_URL} - -# MONTONIO -NEXT_PUBLIC_MONTONIO_ACCESS_KEY=${NEXT_PUBLIC_MONTONIO_ACCESS_KEY} -EOF +RUN echo "# PRODUCTION BUILD ENVIRONMENT VARIABLES" > .env.production && \ + echo "" >> .env.production && \ + echo "# MEDUSA" >> .env.production && \ + echo "MEDUSA_BACKEND_URL=${MEDUSA_BACKEND_URL}" >> .env.production && \ + echo "NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY=${NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY}" >> .env.production && \ + echo "" >> .env.production && \ + echo "# SUPABASE" >> .env.production && \ + echo "SUPABASE_SERVICE_ROLE_KEY=${SUPABASE_SERVICE_ROLE_KEY}" >> .env.production && \ + echo "NEXT_PUBLIC_SUPABASE_URL=${NEXT_PUBLIC_SUPABASE_URL}" >> .env.production && \ + echo "NEXT_PUBLIC_SUPABASE_ANON_KEY=${NEXT_PUBLIC_SUPABASE_ANON_KEY}" >> .env.production && \ + echo "" >> .env.production && \ + echo "# SITE" >> .env.production && \ + echo "NEXT_PUBLIC_SITE_URL=${NEXT_PUBLIC_SITE_URL}" >> .env.production && \ + echo "" >> .env.production && \ + echo "# MONTONIO" >> .env.production && \ + echo "NEXT_PUBLIC_MONTONIO_ACCESS_KEY=${NEXT_PUBLIC_MONTONIO_ACCESS_KEY}" >> .env.production && \ + echo "" >> .env.production && \ + echo "# JOBS" >> .env.production && \ + echo "JOBS_API_TOKEN=${JOBS_API_TOKEN}" >> .env.production # Load env file and echo a specific variable # RUN dotenv -e .env -- printenv | grep 'SUPABASE' || true From cacd23be409f1d7cce147063866416ffb8697276 Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 11:53:39 +0300 Subject: [PATCH 06/15] layer cache before envs --- Dockerfile | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index d72c6bb..3582ca4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # --- Stage 1: Build --- -FROM node:20-alpine as builder +FROM node:24-alpine as builder WORKDIR /app @@ -18,8 +18,11 @@ ARG JOBS_API_TOKEN COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY packages packages COPY tooling tooling + +RUN pnpm install --frozen-lockfile + COPY .env .env -COPY .env.staging .env.staging +#COPY .env.staging .env.staging RUN echo "# PRODUCTION BUILD ENVIRONMENT VARIABLES" > .env.production && \ echo "" >> .env.production && \ @@ -39,11 +42,10 @@ RUN echo "# PRODUCTION BUILD ENVIRONMENT VARIABLES" > .env.production && \ echo "NEXT_PUBLIC_MONTONIO_ACCESS_KEY=${NEXT_PUBLIC_MONTONIO_ACCESS_KEY}" >> .env.production && \ echo "" >> .env.production && \ echo "# JOBS" >> .env.production && \ - echo "JOBS_API_TOKEN=${JOBS_API_TOKEN}" >> .env.production + echo "JOBS_API_TOKEN=${JOBS_API_TOKEN}" >> .env.local # Load env file and echo a specific variable # RUN dotenv -e .env -- printenv | grep 'SUPABASE' || true -RUN pnpm install --frozen-lockfile COPY . . @@ -59,15 +61,14 @@ RUN set -a \ # --- Stage 2: Runtime --- -FROM node:20-alpine +FROM node:24-alpine ARG APP_ENV=production WORKDIR /app COPY --from=builder /app ./ - -COPY --from=builder /app/.env.local .env.local COPY --from=builder /app/.env.${APP_ENV} .env.production +COPY --from=builder /app/.env.local .env.local RUN npm install -g pnpm@9 \ && pnpm install --prod --frozen-lockfile From c356f69656b4ee7d046291ce31336bd382a0b40f Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 12:03:26 +0300 Subject: [PATCH 07/15] retry --- Dockerfile | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3582ca4..05e2913 100644 --- a/Dockerfile +++ b/Dockerfile @@ -51,14 +51,7 @@ COPY . . ENV NODE_ENV=production -RUN set -a \ - && . .env \ - && . .env.production \ - && . .env.staging \ - && set +a \ - && node check-env.js \ - && pnpm build - +RUN dotenv -e .env.local -- pnpm build # --- Stage 2: Runtime --- FROM node:24-alpine From 8485d2e9a321f8438d495d5d66936cc3de91993e Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 12:11:34 +0300 Subject: [PATCH 08/15] retry --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 05e2913..6441103 100644 --- a/Dockerfile +++ b/Dockerfile @@ -51,7 +51,7 @@ COPY . . ENV NODE_ENV=production -RUN dotenv -e .env.local -- pnpm build +RUN NODE_OPTIONS="--max-old-space-size=4096" dotenv -e .env.local -- pnpm build # --- Stage 2: Runtime --- FROM node:24-alpine From a705dea9cfd69d4490bb330cf82a0bd449711e27 Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 12:19:00 +0300 Subject: [PATCH 09/15] retry --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6441103..1a6524c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ # --- Stage 1: Build --- -FROM node:24-alpine as builder +FROM node:20-alpine as builder WORKDIR /app -RUN npm install -g pnpm@10 +RUN npm install -g pnpm@9 RUN npm install -g dotenv-cli ARG MEDUSA_BACKEND_URL @@ -54,7 +54,7 @@ ENV NODE_ENV=production RUN NODE_OPTIONS="--max-old-space-size=4096" dotenv -e .env.local -- pnpm build # --- Stage 2: Runtime --- -FROM node:24-alpine +FROM node:20-alpine ARG APP_ENV=production WORKDIR /app From a6b246cdf38bf7c9b273e1c218eb6dcaf27d444c Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 12:52:06 +0300 Subject: [PATCH 10/15] improve dockerfile --- Dockerfile | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1a6524c..a0a26d9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,8 +50,10 @@ RUN echo "# PRODUCTION BUILD ENVIRONMENT VARIABLES" > .env.production && \ COPY . . ENV NODE_ENV=production +ENV NODE_OPTIONS="--max-old-space-size=4096" +ENV ENABLE_REACT_COMPILER=false -RUN NODE_OPTIONS="--max-old-space-size=4096" dotenv -e .env.local -- pnpm build +RUN dotenv -e .env.local -- pnpm build # --- Stage 2: Runtime --- FROM node:20-alpine @@ -59,13 +61,26 @@ ARG APP_ENV=production WORKDIR /app -COPY --from=builder /app ./ +RUN npm install -g pnpm@9 + +# Copy package files for dependency installation +COPY --from=builder /app/package.json ./ +COPY --from=builder /app/pnpm-lock.yaml ./ +COPY --from=builder /app/pnpm-workspace.yaml ./ +COPY --from=builder /app/packages ./packages +COPY --from=builder /app/tooling ./tooling + +# Install production dependencies +RUN pnpm install --prod --frozen-lockfile + +# Copy the built Next.js application +COPY --from=builder /app/.next ./.next +COPY --from=builder /app/public ./public + +# Copy environment files COPY --from=builder /app/.env.${APP_ENV} .env.production COPY --from=builder /app/.env.local .env.local -RUN npm install -g pnpm@9 \ - && pnpm install --prod --frozen-lockfile - ENV NODE_ENV=production # 🔍 Optional: Log key envs for debug From c1746c6c20f93604c725e0889b3114a5da3e2af9 Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 13:20:17 +0300 Subject: [PATCH 11/15] retry --- Dockerfile | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/Dockerfile b/Dockerfile index a0a26d9..b4ed55e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -53,7 +53,7 @@ ENV NODE_ENV=production ENV NODE_OPTIONS="--max-old-space-size=4096" ENV ENABLE_REACT_COMPILER=false -RUN dotenv -e .env.local -- pnpm build +RUN pnpm build # --- Stage 2: Runtime --- FROM node:20-alpine @@ -61,26 +61,15 @@ ARG APP_ENV=production WORKDIR /app -RUN npm install -g pnpm@9 - -# Copy package files for dependency installation -COPY --from=builder /app/package.json ./ -COPY --from=builder /app/pnpm-lock.yaml ./ -COPY --from=builder /app/pnpm-workspace.yaml ./ -COPY --from=builder /app/packages ./packages -COPY --from=builder /app/tooling ./tooling - -# Install production dependencies -RUN pnpm install --prod --frozen-lockfile - -# Copy the built Next.js application -COPY --from=builder /app/.next ./.next -COPY --from=builder /app/public ./public - -# Copy environment files +COPY --from=builder /app ./ COPY --from=builder /app/.env.${APP_ENV} .env.production COPY --from=builder /app/.env.local .env.local +RUN cp ".env.${APP_ENV}" .env.local + +RUN npm install -g pnpm@9 \ + && pnpm install --prod --frozen-lockfile + ENV NODE_ENV=production # 🔍 Optional: Log key envs for debug From f3a6fb627c2a663edde17b0d62e64fc491586366 Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 13:39:04 +0300 Subject: [PATCH 12/15] react compiler uses too much memory --- next.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/next.config.mjs b/next.config.mjs index 14c5b87..e6be14a 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -50,7 +50,7 @@ const config = { }, experimental: { mdxRs: true, - reactCompiler: ENABLE_REACT_COMPILER, + reactCompiler: false, optimizePackageImports: [ 'recharts', 'lucide-react', From 0de9dcf7e33b7ee48e7325e8ab60d7bfaa90c203 Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 13:49:52 +0300 Subject: [PATCH 13/15] retry --- Dockerfile | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b4ed55e..11114e3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,6 +19,8 @@ COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY packages packages COPY tooling tooling +ENV SKIP_SUPABASE_CLI=true + RUN pnpm install --frozen-lockfile COPY .env .env @@ -53,7 +55,18 @@ ENV NODE_ENV=production ENV NODE_OPTIONS="--max-old-space-size=4096" ENV ENABLE_REACT_COMPILER=false -RUN pnpm build +RUN echo "🔍 Checking environment files before build:" && \ + ls -la .env* && \ + echo "🔍 Contents of .env.production:" && \ + cat .env.production > /tmp/env-debug.log && \ + cat /tmp/env-debug.log && \ + echo "🔍 Contents of .env.local:" && \ + cat .env.local >> /tmp/env-debug.log && \ + cat .env.local && \ + echo "🔍 Parameter Store variables received:" && \ + printenv | grep -E "MEDUSA_BACKEND_URL|NEXT_PUBLIC_SUPABASE_URL|NEXT_PUBLIC_SITE_URL|JOBS_API_TOKEN" | tee -a /tmp/env-debug.log && \ + echo "🔍 Starting Next.js build:" && \ + pnpm build --debug # --- Stage 2: Runtime --- FROM node:20-alpine From 5c6280ec420718c3f309c6c5201d856bde1a5deb Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 14:01:22 +0300 Subject: [PATCH 14/15] retry updated dockerfile --- Dockerfile | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/Dockerfile b/Dockerfile index 11114e3..18598be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,13 +6,13 @@ WORKDIR /app RUN npm install -g pnpm@9 RUN npm install -g dotenv-cli -ARG MEDUSA_BACKEND_URL ARG NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY -ARG SUPABASE_SERVICE_ROLE_KEY ARG NEXT_PUBLIC_SUPABASE_URL ARG NEXT_PUBLIC_SUPABASE_ANON_KEY ARG NEXT_PUBLIC_SITE_URL ARG NEXT_PUBLIC_MONTONIO_ACCESS_KEY +ARG MEDUSA_BACKEND_URL +ARG SUPABASE_SERVICE_ROLE_KEY ARG JOBS_API_TOKEN COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ @@ -55,31 +55,21 @@ ENV NODE_ENV=production ENV NODE_OPTIONS="--max-old-space-size=4096" ENV ENABLE_REACT_COMPILER=false -RUN echo "🔍 Checking environment files before build:" && \ - ls -la .env* && \ - echo "🔍 Contents of .env.production:" && \ - cat .env.production > /tmp/env-debug.log && \ - cat /tmp/env-debug.log && \ - echo "🔍 Contents of .env.local:" && \ - cat .env.local >> /tmp/env-debug.log && \ - cat .env.local && \ - echo "🔍 Parameter Store variables received:" && \ - printenv | grep -E "MEDUSA_BACKEND_URL|NEXT_PUBLIC_SUPABASE_URL|NEXT_PUBLIC_SITE_URL|JOBS_API_TOKEN" | tee -a /tmp/env-debug.log && \ - echo "🔍 Starting Next.js build:" && \ - pnpm build --debug +RUN set -a \ + && . .env.production \ + && set +a \ + && node check-env.js \ + && pnpm build # --- Stage 2: Runtime --- FROM node:20-alpine -ARG APP_ENV=production WORKDIR /app COPY --from=builder /app ./ -COPY --from=builder /app/.env.${APP_ENV} .env.production +COPY --from=builder /app/.env.production .env.production COPY --from=builder /app/.env.local .env.local -RUN cp ".env.${APP_ENV}" .env.local - RUN npm install -g pnpm@9 \ && pnpm install --prod --frozen-lockfile @@ -88,7 +78,7 @@ ENV NODE_ENV=production # 🔍 Optional: Log key envs for debug RUN echo "📄 .env.local contents:" && cat .env.local \ && echo "📄 .env.production contents:" && cat .env.production \ - && echo "🔧 Current ENV available to Next.js build:" && printenv | grep -E 'SUPABASE|STRIPE|NEXT|NODE_ENV' || true + && echo "🔧 Current ENV available to Next.js build:" && printenv | grep -E 'SUPABASE|STRIPE|NEXT|NODE_ENV|MEDUSA|JOBS' || true EXPOSE 3000 From 3d268b60611bf88a1647c092cef2f083b481968f Mon Sep 17 00:00:00 2001 From: Karli Date: Fri, 5 Sep 2025 14:09:02 +0300 Subject: [PATCH 15/15] retry initial dockerfile --- Dockerfile | 61 ++++++++++++++---------------------------------------- 1 file changed, 15 insertions(+), 46 deletions(-) diff --git a/Dockerfile b/Dockerfile index 18598be..5eb2722 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,69 +6,39 @@ WORKDIR /app RUN npm install -g pnpm@9 RUN npm install -g dotenv-cli -ARG NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY -ARG NEXT_PUBLIC_SUPABASE_URL -ARG NEXT_PUBLIC_SUPABASE_ANON_KEY -ARG NEXT_PUBLIC_SITE_URL -ARG NEXT_PUBLIC_MONTONIO_ACCESS_KEY -ARG MEDUSA_BACKEND_URL -ARG SUPABASE_SERVICE_ROLE_KEY -ARG JOBS_API_TOKEN - COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY packages packages COPY tooling tooling - -ENV SKIP_SUPABASE_CLI=true - -RUN pnpm install --frozen-lockfile - COPY .env .env -#COPY .env.staging .env.staging - -RUN echo "# PRODUCTION BUILD ENVIRONMENT VARIABLES" > .env.production && \ - echo "" >> .env.production && \ - echo "# MEDUSA" >> .env.production && \ - echo "MEDUSA_BACKEND_URL=${MEDUSA_BACKEND_URL}" >> .env.production && \ - echo "NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY=${NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY}" >> .env.production && \ - echo "" >> .env.production && \ - echo "# SUPABASE" >> .env.production && \ - echo "SUPABASE_SERVICE_ROLE_KEY=${SUPABASE_SERVICE_ROLE_KEY}" >> .env.production && \ - echo "NEXT_PUBLIC_SUPABASE_URL=${NEXT_PUBLIC_SUPABASE_URL}" >> .env.production && \ - echo "NEXT_PUBLIC_SUPABASE_ANON_KEY=${NEXT_PUBLIC_SUPABASE_ANON_KEY}" >> .env.production && \ - echo "" >> .env.production && \ - echo "# SITE" >> .env.production && \ - echo "NEXT_PUBLIC_SITE_URL=${NEXT_PUBLIC_SITE_URL}" >> .env.production && \ - echo "" >> .env.production && \ - echo "# MONTONIO" >> .env.production && \ - echo "NEXT_PUBLIC_MONTONIO_ACCESS_KEY=${NEXT_PUBLIC_MONTONIO_ACCESS_KEY}" >> .env.production && \ - echo "" >> .env.production && \ - echo "# JOBS" >> .env.production && \ - echo "JOBS_API_TOKEN=${JOBS_API_TOKEN}" >> .env.local +COPY .env.production .env.production +COPY .env.staging .env.staging # Load env file and echo a specific variable # RUN dotenv -e .env -- printenv | grep 'SUPABASE' || true +RUN pnpm install --frozen-lockfile COPY . . ENV NODE_ENV=production -ENV NODE_OPTIONS="--max-old-space-size=4096" -ENV ENABLE_REACT_COMPILER=false RUN set -a \ - && . .env.production \ - && set +a \ - && node check-env.js \ - && pnpm build + && . .env \ + && . .env.production \ + && . .env.staging \ + && set +a \ + && node check-env.js \ + && pnpm build + # --- Stage 2: Runtime --- FROM node:20-alpine +ARG APP_ENV=production WORKDIR /app COPY --from=builder /app ./ -COPY --from=builder /app/.env.production .env.production -COPY --from=builder /app/.env.local .env.local + +RUN cp ".env.${APP_ENV}" .env.local RUN npm install -g pnpm@9 \ && pnpm install --prod --frozen-lockfile @@ -76,9 +46,8 @@ RUN npm install -g pnpm@9 \ ENV NODE_ENV=production # 🔍 Optional: Log key envs for debug -RUN echo "📄 .env.local contents:" && cat .env.local \ - && echo "📄 .env.production contents:" && cat .env.production \ - && echo "🔧 Current ENV available to Next.js build:" && printenv | grep -E 'SUPABASE|STRIPE|NEXT|NODE_ENV|MEDUSA|JOBS' || true +RUN echo "📄 .env contents:" && cat .env.local \ + && echo "🔧 Current ENV available to Next.js build:" && printenv | grep -E 'SUPABASE|STRIPE|NEXT|NODE_ENV' || true EXPOSE 3000