Merge pull request 'Fixed docker' (#6) from temp into develop
Reviewed-on: #6
This commit is contained in:
commit
2e094b0453
@ -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"]
|
||||
|
||||
@ -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:
|
||||
|
||||
8
nestjs/backend/package-lock.json
generated
8
nestjs/backend/package-lock.json
generated
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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');
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user