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
|
WORKDIR /app
|
||||||
|
|
||||||
COPY ./package*.json .
|
# Копируем package*.json
|
||||||
|
COPY package*.json ./
|
||||||
|
|
||||||
RUN npm ci
|
# Устанавливаем зависимости
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
# Копируем весь код
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
|
# Собираем TypeScript
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
|
# Открываем порт 3000
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
CMD ["npm", "run", "start"]
|
# Запускаем NestJS в продакшене
|
||||||
|
CMD ["npm", "run", "start:prod"]
|
||||||
|
|||||||
@ -1,25 +1,8 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
backend:
|
db:
|
||||||
container_name: nestjs_backend
|
container_name: nestjs_db
|
||||||
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:
|
|
||||||
image: postgres:latest
|
image: postgres:latest
|
||||||
container_name: postgres_container
|
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: nichtar
|
POSTGRES_USER: nichtar
|
||||||
@ -28,7 +11,23 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "5432:5432"
|
- "5432:5432"
|
||||||
volumes:
|
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:
|
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/jwt": "^11.0.0",
|
||||||
"@nestjs/passport": "^11.0.5",
|
"@nestjs/passport": "^11.0.5",
|
||||||
"@nestjs/platform-express": "^11.0.1",
|
"@nestjs/platform-express": "^11.0.1",
|
||||||
"@nestjs/swagger": "^11.0.4",
|
"@nestjs/swagger": "^11.0.5",
|
||||||
"@nestjs/typeorm": "^11.0.0",
|
"@nestjs/typeorm": "^11.0.0",
|
||||||
"bcrypt": "^5.1.1",
|
"bcrypt": "^5.1.1",
|
||||||
"passport": "^0.7.0",
|
"passport": "^0.7.0",
|
||||||
@ -2470,9 +2470,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@nestjs/swagger": {
|
"node_modules/@nestjs/swagger": {
|
||||||
"version": "11.0.4",
|
"version": "11.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-11.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-11.0.5.tgz",
|
||||||
"integrity": "sha512-wrdeQucHirv5hakCgFn34GANmqHG0//X0GF+VumYjEeE3H4AGtztbbgwnw/9XeqVM4mD2HjUFx5WYtJMpJvnWQ==",
|
"integrity": "sha512-3z4rl7FgbLPBvJwR45nBDju4QFH7vufs9Ums8sCoc6T1O1dqpNpxz0sKfXiP5QA6AUljks1jARfOHeHeJ4zWBA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@microsoft/tsdoc": "0.15.1",
|
"@microsoft/tsdoc": "0.15.1",
|
||||||
"@nestjs/mapped-types": "2.1.0",
|
"@nestjs/mapped-types": "2.1.0",
|
||||||
|
|||||||
@ -26,7 +26,7 @@
|
|||||||
"@nestjs/jwt": "^11.0.0",
|
"@nestjs/jwt": "^11.0.0",
|
||||||
"@nestjs/passport": "^11.0.5",
|
"@nestjs/passport": "^11.0.5",
|
||||||
"@nestjs/platform-express": "^11.0.1",
|
"@nestjs/platform-express": "^11.0.1",
|
||||||
"@nestjs/swagger": "^11.0.4",
|
"@nestjs/swagger": "^11.0.5",
|
||||||
"@nestjs/typeorm": "^11.0.0",
|
"@nestjs/typeorm": "^11.0.0",
|
||||||
"bcrypt": "^5.1.1",
|
"bcrypt": "^5.1.1",
|
||||||
"passport": "^0.7.0",
|
"passport": "^0.7.0",
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
import { NestFactory } from '@nestjs/core';
|
import { NestFactory } from '@nestjs/core';
|
||||||
import { AppModule } from './app.module';
|
import { AppModule } from './app.module';
|
||||||
|
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
|
||||||
|
|
||||||
async function bootstrap() {
|
async function bootstrap() {
|
||||||
const app = await NestFactory.create(AppModule);
|
const app = await NestFactory.create(AppModule);
|
||||||
@ -7,6 +8,18 @@ async function bootstrap() {
|
|||||||
app.setGlobalPrefix('api'); // Все маршруты будут начинаться с `/api`
|
app.setGlobalPrefix('api'); // Все маршруты будут начинаться с `/api`
|
||||||
app.enableCors(); // Разрешаем CORS
|
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);
|
await app.listen(3000);
|
||||||
console.log('🚀 Server running on http://localhost:3000/api');
|
console.log('🚀 Server running on http://localhost:3000/api');
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user