diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d5dab4c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,39 @@ +version: '3.9' + +services: + app: + build: + context: . + dockerfile: Dockerfile + container_name: nestjs-app + environment: + - NODE_ENV=production + - DB_HOST=${POSTGRES_HOST} + - DB_PORT=${POSTGRES_PORT} + - DB_USERNAME=${POSTGRES_USER} + - DB_PASSWORD=${POSTGRES_PASSWORD} + - DB_DATABASE=${POSTGRES_DB} + - DB_SSL=${DB_SSL} + - DB_SYNC=${DB_SYNC} + - PORT=${PORT} + ports: + - '3023:3023' + depends_on: + - db + restart: unless-stopped + + db: + image: postgres:16.8-alpine3.20 + container_name: postgres-db + environment: + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + volumes: + - pgdata:/var/lib/postgresql/data + ports: + - '5432:5432' + restart: unless-stopped + +volumes: + pgdata: \ No newline at end of file diff --git a/src/app.module.ts b/src/app.module.ts index 841808a..0f436b9 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -9,12 +9,12 @@ import { NotificationModule } from './notifications/notification.module'; ConfigModule.forRoot(), TypeOrmModule.forRoot({ type: 'postgres', - host: process.env.POSTGRES_HOST, - port: 5432, - ssl: process.env.POSTGRES_SSL === 'true', - username: process.env.POSTGRES_USER, - password: process.env.POSTGRES_PASSWORD, - database: process.env.POSTGRES_DATABASE, + host: process.env.DB_HOST, + port: parseInt(process.env.DB_PORT, 10), + ssl: process.env.DB_SSL === 'true', + username: process.env.DB_USERNAME, + password: process.env.DB_PASSWORD, + database: process.env.DB_DATABASE, entities: [__dirname + '/**/*.entity{.ts,.js}'], synchronize: process.env.DB_SYNC === 'true', }),