From bac45ec738798aead335f58a2a8b2874ac70e961 Mon Sep 17 00:00:00 2001 From: vladp Date: Tue, 14 Apr 2026 18:26:23 +0700 Subject: [PATCH] dev update mongodb for ci/cd --- infrastructure/jenkins/deploy-backend.groovy | 31 +++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/infrastructure/jenkins/deploy-backend.groovy b/infrastructure/jenkins/deploy-backend.groovy index 78e2105..efab9a0 100644 --- a/infrastructure/jenkins/deploy-backend.groovy +++ b/infrastructure/jenkins/deploy-backend.groovy @@ -86,10 +86,11 @@ pipeline { passwordVariable: 'SSH_PASS' ), string(credentialsId: 'DB_USER', variable: 'DB_USER'), - string(credentialsId: 'DB_PASSWORD', variable: 'DB_PASSWORD') + string(credentialsId: 'DB_PASSWORD', variable: 'DB_PASSWORD'), + string(credentialsId: 'MONGO_USER', variable: 'MONGO_USER'), + string(credentialsId: 'MONGO_PASSWORD', variable: 'MONGO_PASSWORD') ]) { sh """ - # Тестируем подключение сначала echo "Testing SSH connection..." if sshpass -p '${SSH_PASS}' ssh -o StrictHostKeyChecking=no ${SSH_USER}@${params.SERVER} 'echo "SSH connection successful"'; then echo "SSH connection OK" @@ -98,7 +99,6 @@ pipeline { exit 1 fi - # Основная команда sshpass -p '${SSH_PASS}' ssh -o StrictHostKeyChecking=no ${SSH_USER}@${params.SERVER} " mkdir -p /opt/deployments/${params.BRANCH}-${params.PORT} cd /opt/deployments/${params.BRANCH}-${params.PORT} @@ -118,6 +118,8 @@ pipeline { docker rm postgres-${params.PORT} 2>/dev/null || echo 'Контейнер БД не найден' docker stop file-storage-${params.PORT} 2>/dev/null || echo 'Контейнер storage не найден' docker rm file-storage-${params.PORT} 2>/dev/null || echo 'Контейнер storage не найден' + docker stop mongodb-${params.PORT} 2>/dev/null || echo 'Контейнер MongoDB не найден' + docker rm mongodb-${params.PORT} 2>/dev/null || echo 'Контейнер MongoDB не найден' echo '3. Запускаем БД...' docker run -d \\ @@ -134,20 +136,31 @@ pipeline { -e BUILD_TIME_BACK='${buildTime}' \\ postgres:17.7 - echo '4. Запускаем storage...' + echo '4. Запускаем MongoDB...' + docker run -d \\ + --name mongodb-${params.PORT} \\ + --network ${params.NETWORK} \\ + --network-alias mongodb-${params.PORT} \\ + -p ${params.PORT}1:27017 \\ + -e MONGO_INITDB_ROOT_USERNAME=${MONGO_USER} \\ + -e MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD} \\ + -v mongodb_data_${params.PORT}:/data/db \\ + mongo:7.0 + + echo '5. Запускаем storage...' docker run -d \\ --name file-storage-${params.PORT} \\ --network ${params.NETWORK} \\ -v uploads_data_${params.PORT}:/storage:rw \\ alpine:latest tail -f /dev/null - echo '5. Ждем БД...' + echo '6. Ждем БД...' sleep 15 - echo '6. Собираем приложение...' + echo '7. Собираем приложение...' docker build --no-cache -t app-backend-${params.PORT}:latest . - echo '7. Запускаем приложение...' + echo '8. Запускаем приложение...' docker run -d \\ --name app-backend-${params.PORT} \\ --network ${params.NETWORK} \\ @@ -162,9 +175,11 @@ pipeline { -e POSTGRES_HOST=no_copy_${params.PORT} \\ -e FILE_STORAGE_PATH=/data/uploads \\ -e SPRING_PROFILES_ACTIVE=${springProfile} \\ + -e MONGO_URI=mongodb://${MONGO_USER}:${MONGO_PASSWORD}@mongodb-${params.PORT}:27017 \\ + -e MONGO_DATABASE=no_copy \\ app-backend-${params.PORT}:latest - echo '8. Проверка...' + echo '9. Проверка...' sleep 10 if curl -s -f http://localhost:${params.PORT}/health > /dev/null 2>&1; then