Обновлен файл docker-compose.yml для передачи переменных окружения в процессе сборки. В Dockerfile добавлены аргументы сборки и установлены соответствующие переменные окружения. Изменен способ обертывания дочерних компонентов в layout.tsx с ApolloProvider на Providers.
This commit is contained in:
28
Dockerfile
28
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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 (
|
||||
<html lang="ru">
|
||||
<body>
|
||||
<ApolloProvider client={apolloClient}>
|
||||
{children}
|
||||
</ApolloProvider>
|
||||
<Providers>
|
||||
{children}
|
||||
</Providers>
|
||||
<Toaster />
|
||||
</body>
|
||||
</html>
|
||||
|
16
src/app/providers.tsx
Normal file
16
src/app/providers.tsx
Normal file
@ -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 (
|
||||
<ApolloProvider client={apolloClient}>
|
||||
{children}
|
||||
</ApolloProvider>
|
||||
)
|
||||
}
|
Reference in New Issue
Block a user