From 7e77e850bcaa7def9ac90c3ee8c7748946dc3a74 Mon Sep 17 00:00:00 2001 From: Bivekich Date: Thu, 17 Jul 2025 11:32:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=84=D0=B0=D0=B9=D0=BB=20docker-compose.yml=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=D0=B0=D1=87=D0=B8?= =?UTF-8?q?=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D0=BE=D0=BA=D1=80=D1=83=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B2=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D1=81=D1=81=D0=B5=20?= =?UTF-8?q?=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8.=20=D0=92=20Dockerfile=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B0?= =?UTF-8?q?=D1=80=D0=B3=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D1=8B=20=D1=81=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=D0=BA=D0=B8=20=D0=B8=20=D1=83=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D1=81=D0=BE=D0=BE?= =?UTF-8?q?=D1=82=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2=D1=83=D1=8E=D1=89?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D0=B5=20=D0=BE=D0=BA=D1=80=D1=83=D0=B6=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F.=20=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=20=D1=81?= =?UTF-8?q?=D0=BF=D0=BE=D1=81=D0=BE=D0=B1=20=D0=BE=D0=B1=D0=B5=D1=80=D1=82?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BE=D1=87=D0=B5?= =?UTF-8?q?=D1=80=D0=BD=D0=B8=D1=85=20=D0=BA=D0=BE=D0=BC=D0=BF=D0=BE=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=BE=D0=B2=20=D0=B2=20layout.tsx=20=D1=81?= =?UTF-8?q?=20ApolloProvider=20=D0=BD=D0=B0=20Providers.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 28 ++++++++++++++++++++++++++++ docker-compose.yml | 18 ++++++++++++++---- src/app/layout.tsx | 11 ++++------- src/app/providers.tsx | 16 ++++++++++++++++ 4 files changed, 62 insertions(+), 11 deletions(-) create mode 100644 src/app/providers.tsx diff --git a/Dockerfile b/Dockerfile index 2e99377..da16986 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,34 @@ WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . +# Определяем build args для переменных окружения, необходимых во время сборки +ARG DATABASE_URL +ARG SMS_AERO_EMAIL +ARG SMS_AERO_API_KEY +ARG SMS_AERO_API_URL +ARG DADATA_API_KEY +ARG DADATA_API_URL +ARG WILDBERRIES_API_URL +ARG OZON_API_URL +ARG JWT_SECRET +ARG SMS_DEV_MODE + +# Устанавливаем переменные окружения для build time +ENV DATABASE_URL=$DATABASE_URL +ENV SMS_AERO_EMAIL=$SMS_AERO_EMAIL +ENV SMS_AERO_API_KEY=$SMS_AERO_API_KEY +ENV SMS_AERO_API_URL=$SMS_AERO_API_URL +ENV DADATA_API_KEY=$DADATA_API_KEY +ENV DADATA_API_URL=$DADATA_API_URL +ENV WILDBERRIES_API_URL=$WILDBERRIES_API_URL +ENV OZON_API_URL=$OZON_API_URL +ENV JWT_SECRET=$JWT_SECRET +ENV SMS_DEV_MODE=$SMS_DEV_MODE + +# Устанавливаем NODE_ENV для production build +ENV NODE_ENV=production +ENV NEXT_TELEMETRY_DISABLED=1 + # Генерируем Prisma клиент RUN npx prisma generate diff --git a/docker-compose.yml b/docker-compose.yml index ae689f8..3dfc465 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,12 +1,22 @@ -version: '3.8' - services: app: - build: . + build: + context: . + args: + - DATABASE_URL=${DATABASE_URL} + - SMS_AERO_EMAIL=${SMS_AERO_EMAIL} + - SMS_AERO_API_KEY=${SMS_AERO_API_KEY} + - SMS_AERO_API_URL=${SMS_AERO_API_URL} + - DADATA_API_KEY=${DADATA_API_KEY} + - DADATA_API_URL=${DADATA_API_URL} + - WILDBERRIES_API_URL=${WILDBERRIES_API_URL} + - OZON_API_URL=${OZON_API_URL} + - JWT_SECRET=${JWT_SECRET} + - SMS_DEV_MODE=${SMS_DEV_MODE} ports: - "3017:3000" env_file: - - stack.env + - .env environment: - NODE_ENV=production - PORT=3000 diff --git a/src/app/layout.tsx b/src/app/layout.tsx index cbe1825..7f9c695 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,9 +1,6 @@ -"use client" - -import { ApolloProvider } from '@apollo/client' -import { apolloClient } from '@/lib/apollo-client' import { Toaster } from "@/components/ui/sonner" import "./globals.css" +import { Providers } from './providers' export default function RootLayout({ children, @@ -13,9 +10,9 @@ export default function RootLayout({ return ( - - {children} - + + {children} + diff --git a/src/app/providers.tsx b/src/app/providers.tsx new file mode 100644 index 0000000..1bf0abb --- /dev/null +++ b/src/app/providers.tsx @@ -0,0 +1,16 @@ +"use client" + +import { ApolloProvider } from '@apollo/client' +import { apolloClient } from '@/lib/apollo-client' + +export function Providers({ + children, +}: { + children: React.ReactNode +}) { + return ( + + {children} + + ) +} \ No newline at end of file