Обновлен файл 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 --from=deps /app/node_modules ./node_modules
|
||||||
COPY . .
|
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 клиент
|
# Генерируем Prisma клиент
|
||||||
RUN npx prisma generate
|
RUN npx prisma generate
|
||||||
|
|
||||||
|
@ -1,12 +1,22 @@
|
|||||||
version: '3.8'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
app:
|
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:
|
ports:
|
||||||
- "3017:3000"
|
- "3017:3000"
|
||||||
env_file:
|
env_file:
|
||||||
- stack.env
|
- .env
|
||||||
environment:
|
environment:
|
||||||
- NODE_ENV=production
|
- NODE_ENV=production
|
||||||
- PORT=3000
|
- 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 { Toaster } from "@/components/ui/sonner"
|
||||||
import "./globals.css"
|
import "./globals.css"
|
||||||
|
import { Providers } from './providers'
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
children,
|
children,
|
||||||
@ -13,9 +10,9 @@ export default function RootLayout({
|
|||||||
return (
|
return (
|
||||||
<html lang="ru">
|
<html lang="ru">
|
||||||
<body>
|
<body>
|
||||||
<ApolloProvider client={apolloClient}>
|
<Providers>
|
||||||
{children}
|
{children}
|
||||||
</ApolloProvider>
|
</Providers>
|
||||||
<Toaster />
|
<Toaster />
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</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