From de254806b6a1cfb0eca04535d9a75faf3d32c80b Mon Sep 17 00:00:00 2001 From: prtsie Date: Thu, 30 Oct 2025 13:17:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D0=B8=20CI/CD=20=D1=81=20?= =?UTF-8?q?=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=B0=20=D0=B2=20=D1=80?= =?UTF-8?q?=D0=B5=D0=BF=D0=BE=D0=B7=D0=B8=D1=82=D0=BE=D1=80=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Docker/deploy.sh | 30 ++++++++++++++++ .../templates/docker-compose.dev-template.yml | 34 +++++++++++++++++++ Docker/templates/docker-compose.template.yml | 34 +++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100755 Docker/deploy.sh create mode 100644 Docker/templates/docker-compose.dev-template.yml create mode 100644 Docker/templates/docker-compose.template.yml diff --git a/Docker/deploy.sh b/Docker/deploy.sh new file mode 100755 index 0000000..a1c1e3e --- /dev/null +++ b/Docker/deploy.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +set -euo pipefail + +BRANCH=$1 + +# Директории +TEMPLATE_DIR="/deploy/templates" +DEPLOY_DIR="/deploy/templates/$BRANCH" + +if [ "$BRANCH" = "main" ]; then + TEMPLATE_FILE="docker-compose.template.yml" +else + TEMPLATE_FILE="docker-compose.dev-template.yml" +fi + +# Создаем директорию для деплоя +mkdir -p $DEPLOY_DIR + +# Копируем и обновляем docker-compose.yml +sed "s|{{BRANCH}}|$BRANCH|g" $TEMPLATE_DIR/$TEMPLATE_FILE > $DEPLOY_DIR/docker-compose.yml + +# Перезапускаем сервисы +cd $DEPLOY_DIR +docker-compose down +docker-compose pull +docker-compose up -d + +# Очистка старых образов +docker image prune -f diff --git a/Docker/templates/docker-compose.dev-template.yml b/Docker/templates/docker-compose.dev-template.yml new file mode 100644 index 0000000..71783b5 --- /dev/null +++ b/Docker/templates/docker-compose.dev-template.yml @@ -0,0 +1,34 @@ +services: + api-dev: + image: git.prtsie.ru/prtsie/schengen-visa-{{BRANCH}} + container_name: visa-api-{{BRANCH}} + ports: + - "5001:5000" + depends_on: + postgres-db-dev: + condition: service_healthy + environment: + - ASPNETCORE_ENVIRONMENT=Development + - ConnectionStrings__connectionString=Host=postgres-db-dev;Port=5432;Database=visa;Username=postgres;Password=Qwerty123456! + networks: + - app-network-{{BRANCH}} + + postgres-db-dev: + image: postgres:latest + container_name: visa-db-{{BRANCH}} + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: Qwerty123456! + POSTGRES_DATABASE: visa + networks: + - app-network-{{BRANCH}} + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres -d visa"] + interval: 5s + timeout: 5s + retries: 10 + start_period: 10s + +networks: + app-network-{{BRANCH}}: + driver: bridge diff --git a/Docker/templates/docker-compose.template.yml b/Docker/templates/docker-compose.template.yml new file mode 100644 index 0000000..eca0b97 --- /dev/null +++ b/Docker/templates/docker-compose.template.yml @@ -0,0 +1,34 @@ +services: + api: + image: git.prtsie.ru/prtsie/schengen-visa-{{BRANCH}} + container_name: visa-api-{{BRANCH}} + ports: + - "5000:5000" + depends_on: + postgres-db: + condition: service_healthy + environment: + - ASPNETCORE_ENVIRONMENT=Development + - ConnectionStrings__connectionString=Host=postgres-db;Port=5432;Database=visa;Username=postgres;Password=Qwerty123456! + networks: + - app-network-{{BRANCH}} + + postgres-db: + image: postgres:latest + container_name: visa-db-{{BRANCH}} + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: Qwerty123456! + POSTGRES_DATABASE: visa + networks: + - app-network-{{BRANCH}} + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres -d visa"] + interval: 5s + timeout: 5s + retries: 10 + start_period: 10s + +networks: + app-network-{{BRANCH}}: + driver: bridge