From 9b4e8440dc7b02a59f4cfecbf5680cee42df68ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Mon, 17 Nov 2025 20:32:30 +0300 Subject: [PATCH] add ci --- Dockerfile | 19 ++++++++++--------- docker-compose.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 9 deletions(-) create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile index 02be74e..ed74af3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,17 @@ -FROM node:22-alpine AS builder - -WORKDIR /app -RUN apk add --no-cache python3 make g++ -COPY package*.json ./ RUN npm ci - +FROM node:22-alpine AS builder +WORKDIR /app +RUN apk add --no-cache python3 make g++ +COPY package*.json ./ +RUN npm ci COPY . . - RUN npm run build +RUN npm prune --omit=dev +FROM node:22-alpine AS runner +WORKDIR /app +ENV NODE_ENV=production COPY --from=builder /app/dist ./dist COPY --from=builder /app/node_modules ./node_modules - +COPY package*.json ./ EXPOSE 4000 - CMD ["node", "dist/main.js"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b4724b0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,46 @@ +services: + postgres: + image: postgres:16-alpine + restart: always + environment: + POSTGRES_DB: yachtbooking + POSTGRES_USER: yacht + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-change_me} + volumes: + - pg-data:/var/lib/postgresql/data + ports: + - "127.0.0.1:5432:5432" + + backend: + build: . + environment: + NODE_ENV: production + PORT: 4000 + DATABASE_URL: postgresql://yacht:${POSTGRES_PASSWORD:-change_me}@postgres:5432/yachtbooking + depends_on: + - postgres + ports: + - "127.0.0.1:4000:4000" + restart: always + + pgbackup: + image: prodrigestivill/postgres-backup-local:16 + restart: always + depends_on: + - postgres + environment: + POSTGRES_HOST: postgres + POSTGRES_DB: yachtbooking + POSTGRES_USER: yacht + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-change_me} + SCHEDULE: "0 3 * * *" + BACKUP_KEEP_DAYS: 7 + BACKUP_KEEP_WEEKS: 4 + BACKUP_KEEP_MONTHS: 3 + BACKUP_DIR: /backups + volumes: + - pg-backups:/backups + +volumes: + pg-data: + pg-backups: \ No newline at end of file