Compare commits
4 Commits
c5f3377a62
...
e7234c3e8a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7234c3e8a | ||
|
|
d24f948751 | ||
|
|
91561519b5 | ||
|
|
cdf6c27ee8 |
File diff suppressed because one or more lines are too long
@@ -3,9 +3,8 @@
|
||||
node_modules
|
||||
nextjs_space/node_modules
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
|
||||
# Next.js
|
||||
# Next.js build output
|
||||
nextjs_space/.next
|
||||
.next
|
||||
|
||||
@@ -16,13 +15,15 @@ coverage
|
||||
# Misc
|
||||
.DS_Store
|
||||
*.pem
|
||||
|
||||
# Environment variables (except example)
|
||||
.env
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
# Debug
|
||||
# Debug logs
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
@@ -37,9 +38,26 @@ yarn-error.log*
|
||||
# Git
|
||||
.git
|
||||
.gitignore
|
||||
README.md
|
||||
|
||||
# Docker
|
||||
# Documentation (не нужны в образе)
|
||||
README.md
|
||||
README.deployment.md
|
||||
DATABASE.md
|
||||
DATABASE.pdf
|
||||
|
||||
# Docker files
|
||||
Dockerfile
|
||||
docker-compose.yml
|
||||
.dockerignore
|
||||
|
||||
# Scripts
|
||||
*.sh
|
||||
|
||||
# Backups
|
||||
backups/
|
||||
*.sql
|
||||
*.sql.gz
|
||||
|
||||
# Config examples
|
||||
nginx.conf.example
|
||||
traefik-config-example.yml
|
||||
|
||||
26
Dockerfile
26
Dockerfile
@@ -3,12 +3,12 @@
|
||||
|
||||
# Стадия 1: Установка зависимостей
|
||||
FROM node:18-alpine AS deps
|
||||
RUN apk add --no-cache libc6-compat
|
||||
RUN apk add --no-cache libc6-compat openssl
|
||||
WORKDIR /app
|
||||
|
||||
# Копируем файлы зависимостей
|
||||
COPY nextjs_space/package.json nextjs_space/yarn.lock* ./
|
||||
RUN yarn install --frozen-lockfile --production=false
|
||||
COPY nextjs_space/package.json nextjs_space/yarn.lock ./
|
||||
RUN yarn install --immutable
|
||||
|
||||
# Стадия 2: Сборка приложения
|
||||
FROM node:18-alpine AS builder
|
||||
@@ -19,7 +19,10 @@ COPY --from=deps /app/node_modules ./node_modules
|
||||
COPY nextjs_space/ ./
|
||||
|
||||
# Используем production конфигурацию
|
||||
RUN mv next.config.prod.js next.config.js || true
|
||||
RUN if [ -f next.config.prod.js ]; then mv next.config.prod.js next.config.js; fi
|
||||
|
||||
# Генерируем Prisma Client
|
||||
RUN npx prisma generate
|
||||
|
||||
# Создаем .env файл для сборки
|
||||
ARG NEXT_PUBLIC_SITE_URL
|
||||
@@ -32,6 +35,9 @@ RUN yarn build
|
||||
FROM node:18-alpine AS runner
|
||||
WORKDIR /app
|
||||
|
||||
# Устанавливаем необходимые пакеты
|
||||
RUN apk add --no-cache openssl libc6-compat
|
||||
|
||||
ENV NODE_ENV=production
|
||||
ENV NEXT_TELEMETRY_DISABLED=1
|
||||
|
||||
@@ -39,13 +45,15 @@ ENV NEXT_TELEMETRY_DISABLED=1
|
||||
RUN addgroup --system --gid 1001 nodejs
|
||||
RUN adduser --system --uid 1001 nextjs
|
||||
|
||||
# Копируем необходимые файлы
|
||||
# Копируем необходимые файлы из builder
|
||||
COPY --from=builder /app/public ./public
|
||||
COPY --from=builder /app/.next/standalone ./
|
||||
COPY --from=builder /app/.next/static ./.next/static
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
|
||||
|
||||
# Устанавливаем правильные права
|
||||
RUN chown -R nextjs:nodejs /app
|
||||
# Копируем Prisma схему и клиент
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/node_modules/.prisma ./node_modules/.prisma
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/node_modules/@prisma ./node_modules/@prisma
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/prisma ./prisma
|
||||
|
||||
USER nextjs
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
/opt/hostedapp/node/root/app/yarn.lock
|
||||
13324
nextjs_space/yarn.lock
Normal file
13324
nextjs_space/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user