dev add split network and add new ports with apps
Test Workflow / test (push) Successful in 9s

This commit is contained in:
vladp
2026-01-28 18:19:20 +07:00
parent 2215adc37f
commit 02bf7868ee
6 changed files with 556 additions and 252 deletions
+88 -69
View File
@@ -7,6 +7,11 @@ pipeline {
defaultValue: 'main',
description: 'Ветка для деплоя'
)
string(
name: 'PORT',
defaultValue: '2998',
description: 'Порт для запуска экземпляра'
)
}
stages {
@@ -36,19 +41,19 @@ pipeline {
)
]) {
sh """
sshpass -p '$SSH_PASS' ssh $SSH_USER@92.242.61.23 "
docker stop no-copy-frontend 2>/dev/null || true
docker rm no-copy-frontend 2>/dev/null || true
cd /opt/deployments/frontend/${params.BRANCH} 2>/dev/null || mkdir -p /opt/deployments/frontend/${params.BRANCH}
if [ -f 'docker-compose.yaml' ]; then
docker-compose -f docker-compose.yaml down 2>/dev/null || true
elif [ -f 'docker-compose.yml' ]; then
docker-compose -f docker-compose.yml down 2>/dev/null || true
fi
"
"""
sshpass -p '$SSH_PASS' ssh $SSH_USER@92.242.61.23 "
docker stop no-copy-frontend-${params.PORT} 2>/dev/null || true
docker rm no-copy-frontend-${params.PORT} 2>/dev/null || true
cd /opt/deployments/frontend/${params.BRANCH}-${params.PORT} 2>/dev/null || mkdir -p /opt/deployments/frontend/${params.BRANCH}-${params.PORT}
if [ -f 'docker-compose.yaml' ]; then
docker-compose -f docker-compose.yaml -p frontend-${params.PORT} down 2>/dev/null || true
elif [ -f 'docker-compose.yml' ]; then
docker-compose -f docker-compose.yml -p frontend-${params.PORT} down 2>/dev/null || true
fi
"
"""
}
}
}
@@ -65,13 +70,13 @@ pipeline {
)
]) {
sh """
sshpass -p '$SSH_PASS' ssh $SSH_USER@92.242.61.23 "
rm -rf /opt/deployments/frontend/${params.BRANCH}/*
mkdir -p /opt/deployments/frontend/${params.BRANCH}
"
sshpass -p '$SSH_PASS' scp -r ./* $SSH_USER@92.242.61.23:/opt/deployments/frontend/${params.BRANCH}/
"""
sshpass -p '$SSH_PASS' ssh $SSH_USER@92.242.61.23 "
rm -rf /opt/deployments/frontend/${params.BRANCH}-${params.PORT}/*
mkdir -p /opt/deployments/frontend/${params.BRANCH}-${params.PORT}
"
sshpass -p '$SSH_PASS' scp -r ./* $SSH_USER@92.242.61.23:/opt/deployments/frontend/${params.BRANCH}-${params.PORT}/
"""
}
}
}
@@ -88,19 +93,24 @@ pipeline {
)
]) {
sh """
sshpass -p '$SSH_PASS' ssh $SSH_USER@92.242.61.23 "
cd /opt/deployments/frontend/${params.BRANCH}
if [ -f 'docker-compose.yaml' ]; then
docker-compose -f docker-compose.yaml build
elif [ -f 'docker-compose.yml' ]; then
docker-compose -f docker-compose.yml build
else
echo 'Exception: docker-compose file not found'
exit 1
fi
"
"""
sshpass -p '$SSH_PASS' ssh $SSH_USER@92.242.61.23 "
cd /opt/deployments/frontend/${params.BRANCH}-${params.PORT}
echo '=== Редактируем docker-compose.yml ==='
# Меняем имя контейнера
sed -i 's/container_name: no-copy-frontend\$/container_name: no-copy-frontend-${params.PORT}/' docker-compose.yml
# Меняем порт (2998 на нужный порт)
sed -i 's/\\\"2998:2999\\\"/\\\"${params.PORT}:2999\\\"/' docker-compose.yml
echo 'Проверяем изменения:'
grep -n 'container_name\\|ports' docker-compose.yml
echo '=== Строим образ ==='
docker-compose -f docker-compose.yml -p frontend-${params.PORT} build
"
"""
}
}
}
@@ -117,24 +127,26 @@ pipeline {
)
]) {
sh """
sshpass -p '$SSH_PASS' ssh $SSH_USER@92.242.61.23 "
cd /opt/deployments/frontend/${params.BRANCH}
# Проверяем и подключаем к сети app-network если нужно
docker network inspect app-network 2>/dev/null || echo 'Warning: app-network not found'
if [ -f 'docker-compose.yaml' ]; then
docker-compose -f docker-compose.yaml up -d
elif [ -f 'docker-compose.yml' ]; then
docker-compose -f docker-compose.yml up -d
fi
sleep 10
echo 'Status container:'
docker ps --filter name=no-copy-frontend
"
"""
sshpass -p '$SSH_PASS' ssh $SSH_USER@92.242.61.23 "
cd /opt/deployments/frontend/${params.BRANCH}-${params.PORT}
echo '=== Запускаем контейнер ==='
docker-compose -f docker-compose.yml -p frontend-${params.PORT} up -d
sleep 10
echo '=== Проверяем запуск ==='
if docker ps --format '{{.Names}}' | grep -q 'no-copy-frontend-${params.PORT}'; then
echo '✓ Контейнер запущен: no-copy-frontend-${params.PORT}'
echo '✓ Порт: ${params.PORT}:2999'
else
echo '✗ Контейнер не запустился'
echo 'Логи:'
docker-compose -f docker-compose.yml -p frontend-${params.PORT} logs
exit 1
fi
"
"""
}
}
}
@@ -151,23 +163,29 @@ pipeline {
)
]) {
sh """
sshpass -p '$SSH_PASS' ssh $SSH_USER@92.242.61.23 "
if docker ps --format '{{.Names}}' | grep -q 'no-copy-frontend'; then
echo 'Container started'
sleep 5
HTTP_CODE=\$(curl -s -o /dev/null -w '%{http_code}' http://localhost:2998 || echo '000')
echo 'HTTP code: \$HTTP_CODE'
echo 'Frontend available on http://92.242.61.23:2998'
else
echo 'Exception: container did not start'
docker ps -a | grep frontend
exit 1
fi
"
"""
sshpass -p '$SSH_PASS' ssh $SSH_USER@92.242.61.23 "
# Ищем контейнер с правильным именем (с портом)
if docker ps --format '{{.Names}}' | grep -q 'no-copy-frontend-${params.PORT}'; then
echo 'Container started: no-copy-frontend-${params.PORT}'
sleep 5
HTTP_CODE=\$(curl -s -o /dev/null -w '%{http_code}' http://localhost:${params.PORT} || echo '000')
echo 'HTTP code: \$HTTP_CODE'
echo 'Frontend available on http://92.242.61.23:${params.PORT}'
# Показываем все фронтенды
echo ''
echo 'All frontend containers:'
docker ps --filter name=no-copy-frontend --format 'table {{.Names}}\\t{{.Ports}}\\t{{.Status}}'
else
echo 'Exception: container did not start'
docker ps -a | grep frontend
exit 1
fi
"
"""
}
}
}
@@ -177,7 +195,8 @@ pipeline {
post {
success {
echo "Front branch ${params.BRANCH} deployment completed"
echo "Frontend available on http://92.242.61.23:2998"
echo "Frontend available on http://92.242.61.23:${params.PORT}"
echo "Container: no-copy-frontend-${params.PORT}"
}
failure {
echo "Deployment failed"