diff --git a/backend/.dockerignore b/backend/.dockerignore new file mode 100644 index 0000000..d53670e --- /dev/null +++ b/backend/.dockerignore @@ -0,0 +1,12 @@ +node_modules +dist +*.log +.env +.env.* +npm-debug.log* +.DS_Store +coverage +.vscode +.idea +*.swp +*.swo diff --git a/backend/Dockerfile b/backend/Dockerfile index 5c4a5f7..25e6e56 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,5 +1,6 @@ -FROM node:18-alpine AS builder +FROM node:20-alpine AS builder WORKDIR /app +RUN npm install -g npm@11.7.0 COPY package*.json ./ COPY prisma ./prisma/ RUN npm ci @@ -7,8 +8,9 @@ COPY . . RUN npx prisma generate RUN npm run build -FROM node:18-alpine +FROM node:20-alpine WORKDIR /app +RUN npm install -g npm@11.7.0 COPY package*.json ./ COPY prisma ./prisma/ RUN npm ci --production @@ -27,4 +29,4 @@ HEALTHCHECK --interval=30s --timeout=3s --start-period=40s --retries=3 \ # Явно выводим логи в stdout/stderr без буферизации # Используем 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" diff --git a/backend/package.json b/backend/package.json index 56d1b82..2ad26b5 100644 --- a/backend/package.json +++ b/backend/package.json @@ -22,9 +22,6 @@ "prisma:migrate": "prisma migrate dev", "prisma:seed": "ts-node prisma/seed.ts" }, - "prisma": { - "seed": "ts-node prisma/seed.ts" - }, "dependencies": { "@nestjs/common": "^11.0.1", "@nestjs/config": "^4.0.2", @@ -34,7 +31,7 @@ "@nestjs/platform-express": "^11.0.1", "@nestjs/platform-socket.io": "^11.1.11", "@nestjs/websockets": "^11.1.11", - "@prisma/client": "^6.19.1", + "@prisma/client": "^7.2.0", "bcrypt": "^6.0.0", "class-transformer": "^0.5.1", "class-validator": "^0.14.3", @@ -63,7 +60,7 @@ "globals": "^16.0.0", "jest": "^30.0.0", "prettier": "^3.4.2", - "prisma": "^6.19.1", + "prisma": "^7.2.0", "source-map-support": "^0.5.21", "supertest": "^7.0.0", "ts-jest": "^29.2.5",