This commit is contained in:
Dmitry 2026-01-05 01:54:34 +03:00
parent a9c24af567
commit 0bd82d8678
3 changed files with 19 additions and 8 deletions

12
backend/.dockerignore Normal file
View file

@ -0,0 +1,12 @@
node_modules
dist
*.log
.env
.env.*
npm-debug.log*
.DS_Store
coverage
.vscode
.idea
*.swp
*.swo

View file

@ -1,5 +1,6 @@
FROM node:18-alpine AS builder FROM node:20-alpine AS builder
WORKDIR /app WORKDIR /app
RUN npm install -g npm@11.7.0
COPY package*.json ./ COPY package*.json ./
COPY prisma ./prisma/ COPY prisma ./prisma/
RUN npm ci RUN npm ci
@ -7,8 +8,9 @@ COPY . .
RUN npx prisma generate RUN npx prisma generate
RUN npm run build RUN npm run build
FROM node:18-alpine FROM node:20-alpine
WORKDIR /app WORKDIR /app
RUN npm install -g npm@11.7.0
COPY package*.json ./ COPY package*.json ./
COPY prisma ./prisma/ COPY prisma ./prisma/
RUN npm ci --production RUN npm ci --production
@ -27,4 +29,4 @@ HEALTHCHECK --interval=30s --timeout=3s --start-period=40s --retries=3 \
# Явно выводим логи в stdout/stderr без буферизации # Явно выводим логи в stdout/stderr без буферизации
# Используем unbuffered mode для Python-style вывода (если доступно) # Используем unbuffered mode для Python-style вывода (если доступно)
CMD sh -c "echo '========================================' 1>&2 && echo '=== DOCKER CMD STARTED ===' 1>&2 && echo '========================================' 1>&2 && echo 'Running migrations...' 1>&2 && npx prisma migrate deploy 2>&1 && echo '=== MIGRATIONS COMPLETED ===' 1>&2 && echo 'Starting Node.js application...' 1>&2 && exec node --no-warnings dist/main 2>&1" CMD sh -c "echo '========================================' 1>&2 && echo '=== DOCKER CMD STARTED ===' 1>&2 && echo '========================================' 1>&2 && echo 'Running migrations...' 1>&2 && npx prisma migrate deploy 2>&1 && echo '=== MIGRATIONS COMPLETED ===' 1>&2 && echo 'Starting Node.js application...' 1>&2 && exec node --no-warnings dist/src/main.js 2>&1"

View file

@ -22,9 +22,6 @@
"prisma:migrate": "prisma migrate dev", "prisma:migrate": "prisma migrate dev",
"prisma:seed": "ts-node prisma/seed.ts" "prisma:seed": "ts-node prisma/seed.ts"
}, },
"prisma": {
"seed": "ts-node prisma/seed.ts"
},
"dependencies": { "dependencies": {
"@nestjs/common": "^11.0.1", "@nestjs/common": "^11.0.1",
"@nestjs/config": "^4.0.2", "@nestjs/config": "^4.0.2",
@ -34,7 +31,7 @@
"@nestjs/platform-express": "^11.0.1", "@nestjs/platform-express": "^11.0.1",
"@nestjs/platform-socket.io": "^11.1.11", "@nestjs/platform-socket.io": "^11.1.11",
"@nestjs/websockets": "^11.1.11", "@nestjs/websockets": "^11.1.11",
"@prisma/client": "^6.19.1", "@prisma/client": "^7.2.0",
"bcrypt": "^6.0.0", "bcrypt": "^6.0.0",
"class-transformer": "^0.5.1", "class-transformer": "^0.5.1",
"class-validator": "^0.14.3", "class-validator": "^0.14.3",
@ -63,7 +60,7 @@
"globals": "^16.0.0", "globals": "^16.0.0",
"jest": "^30.0.0", "jest": "^30.0.0",
"prettier": "^3.4.2", "prettier": "^3.4.2",
"prisma": "^6.19.1", "prisma": "^7.2.0",
"source-map-support": "^0.5.21", "source-map-support": "^0.5.21",
"supertest": "^7.0.0", "supertest": "^7.0.0",
"ts-jest": "^29.2.5", "ts-jest": "^29.2.5",