Compare commits

..

2 Commits

Author SHA1 Message Date
2e094b0453 Merge pull request 'Fixed docker' (#6) from temp into develop
Reviewed-on: #6
2025-02-27 16:00:01 +00:00
Nikolay Tarasov
598f8d5c55 Fixed docker 2025-02-27 18:58:20 +03:00
5 changed files with 50 additions and 30 deletions

View File

@ -1,15 +1,23 @@
FROM node:18.20.7-alpine
# Используем официальный Node.js образ
FROM node:18
# Устанавливаем рабочую директорию внутри контейнера
WORKDIR /app
COPY ./package*.json .
# Копируем package*.json
COPY package*.json ./
RUN npm ci
# Устанавливаем зависимости
RUN npm install
# Копируем весь код
COPY . .
# Собираем TypeScript
RUN npm run build
# Открываем порт 3000
EXPOSE 3000
CMD ["npm", "run", "start"]
# Запускаем NestJS в продакшене
CMD ["npm", "run", "start:prod"]

View File

@ -1,25 +1,8 @@
version: "3.8"
services:
backend:
container_name: nestjs_backend
build: .
ports:
- "3000:3000"
environment:
DB_HOST: 109.107.166.17
DB_PORT: 5432
DB_USER: nichtar
DB_PASSWORD: 6t30a72
DB_NAME: todo
JWT_SECRET: your_secret_key
JWT_EXPIRES_IN: 3600s
depends_on:
- postgres
postgres:
db:
container_name: nestjs_db
image: postgres:latest
container_name: postgres_container
restart: always
environment:
POSTGRES_USER: nichtar
@ -28,7 +11,23 @@ services:
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- db_data:/var/lib/postgresql/data
backend:
container_name: nestjs_backend
build: .
ports:
- "3000:3000"
depends_on:
- db
environment:
DB_HOST: db
DB_PORT: 5432
DB_USER: nichtar
DB_PASSWORD: 6t30a72
DB_NAME: todo
JWT_SECRET: your_secret_key
JWT_EXPIRES_IN: 3600s
volumes:
postgres_data:
db_data:

View File

@ -15,7 +15,7 @@
"@nestjs/jwt": "^11.0.0",
"@nestjs/passport": "^11.0.5",
"@nestjs/platform-express": "^11.0.1",
"@nestjs/swagger": "^11.0.4",
"@nestjs/swagger": "^11.0.5",
"@nestjs/typeorm": "^11.0.0",
"bcrypt": "^5.1.1",
"passport": "^0.7.0",
@ -2470,9 +2470,9 @@
}
},
"node_modules/@nestjs/swagger": {
"version": "11.0.4",
"resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-11.0.4.tgz",
"integrity": "sha512-wrdeQucHirv5hakCgFn34GANmqHG0//X0GF+VumYjEeE3H4AGtztbbgwnw/9XeqVM4mD2HjUFx5WYtJMpJvnWQ==",
"version": "11.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-11.0.5.tgz",
"integrity": "sha512-3z4rl7FgbLPBvJwR45nBDju4QFH7vufs9Ums8sCoc6T1O1dqpNpxz0sKfXiP5QA6AUljks1jARfOHeHeJ4zWBA==",
"dependencies": {
"@microsoft/tsdoc": "0.15.1",
"@nestjs/mapped-types": "2.1.0",

View File

@ -26,7 +26,7 @@
"@nestjs/jwt": "^11.0.0",
"@nestjs/passport": "^11.0.5",
"@nestjs/platform-express": "^11.0.1",
"@nestjs/swagger": "^11.0.4",
"@nestjs/swagger": "^11.0.5",
"@nestjs/typeorm": "^11.0.0",
"bcrypt": "^5.1.1",
"passport": "^0.7.0",

View File

@ -1,5 +1,6 @@
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
@ -7,6 +8,18 @@ async function bootstrap() {
app.setGlobalPrefix('api'); // Все маршруты будут начинаться с `/api`
app.enableCors(); // Разрешаем CORS
// Настройка Swagger
const config = new DocumentBuilder()
.setTitle('Project Management API')
.setDescription('API documentation for NestJS + Docker project')
.setVersion('1.0')
.addBearerAuth() // Добавляем поддержку JWT (Bearer)
.build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('api/docs', app, document);
// Теперь Swagger доступен по /api/docs
await app.listen(3000);
console.log('🚀 Server running on http://localhost:3000/api');
}