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