add section admin permission

This commit is contained in:
2026-05-09 12:44:04 +07:00
parent be4073795f
commit 213ae881e6
+61 -44
View File
@@ -23,9 +23,9 @@ pipeline {
description: 'Имя сети (будет создана если не существует)'
)
string(
name: 'DB_HOST',
defaultValue: 'db',
description: 'Хост базы данных'
name: 'DB_PORT',
defaultValue: '5454',
description: 'Порт для базы данных'
)
}
@@ -57,19 +57,14 @@ pipeline {
)
]) {
sh """
sshpass -p '${SSH_PASS}' ssh -o StrictHostKeyChecking=no ${SSH_USER}@${params.SERVER} "
sshpass -p '${SSH_PASS}' ssh -o StrictHostKeyChecking=no ${SSH_USER}@${params.SERVER} '
mkdir -p /opt/deployments/admin-panel-${params.PORT} &&
rm -rf /opt/deployments/admin-panel-${params.PORT}/*
mkdir -p /opt/deployments/admin-panel-${params.PORT}
"
'
sshpass -p '${SSH_PASS}' rsync -av --delete \\
--exclude=.git \\
--exclude=.gradle \\
--exclude=build \\
--exclude=**/build \\
--exclude=.idea \\
--exclude=out \\
. ${SSH_USER}@${params.SERVER}:/opt/deployments/admin-panel-${params.PORT}/
sshpass -p '${SSH_PASS}' scp -r -o StrictHostKeyChecking=no \
. \
${SSH_USER}@${params.SERVER}:/opt/deployments/admin-panel-${params.PORT}/
"""
}
}
@@ -85,9 +80,7 @@ pipeline {
credentialsId: 'server-root-password',
usernameVariable: 'SSH_USER',
passwordVariable: 'SSH_PASS'
),
string(credentialsId: 'DB_USER', variable: 'DB_USER'),
string(credentialsId: 'DB_PASSWORD', variable: 'DB_PASSWORD')
)
]) {
sh """
sshpass -p '${SSH_PASS}' ssh -o StrictHostKeyChecking=no ${SSH_USER}@${params.SERVER} "
@@ -101,32 +94,56 @@ pipeline {
echo 'Сеть ${params.NETWORK} уже существует'
fi
echo '2. Останавливаем старый контейнер...'
docker stop admin-panel-${params.PORT} 2>/dev/null || echo 'Контейнер не найден'
docker rm admin-panel-${params.PORT} 2>/dev/null || echo 'Контейнер не найден'
echo '2. Останавливаем старые контейнеры...'
docker stop admin-panel-${params.PORT} 2>/dev/null || echo 'Контейнер приложения не найден'
docker rm admin-panel-${params.PORT} 2>/dev/null || echo 'Контейнер приложения не найден'
docker stop admin-db-${params.PORT} 2>/dev/null || echo 'Контейнер БД не найден'
docker rm admin-db-${params.PORT} 2>/dev/null || echo 'Контейнер БД не найден'
echo '3. Собираем образ...'
echo '3. Запускаем базу данных...'
docker run -d \\
--name admin-db-${params.PORT} \\
--network ${params.NETWORK} \\
--network-alias db \\
-p ${params.DB_PORT}:5432 \\
-v admin_db_data_${params.PORT}:/var/lib/postgresql/data \\
-e POSTGRES_DB=admin_db \\
-e POSTGRES_USER=admin \\
-e POSTGRES_PASSWORD=adminDbApp \\
--restart unless-stopped \\
postgres:16
echo '4. Ждем готовности БД...'
sleep 5
until docker exec admin-db-${params.PORT} pg_isready -U admin; do
echo 'Waiting for database...'
sleep 2
done
echo 'База данных готова'
echo '5. Собираем образ приложения...'
docker build --no-cache -t admin-panel-${params.PORT}:latest .
echo '4. Запускаем контейнер...'
echo '6. Запускаем приложение...'
docker run -d \\
--name admin-panel-${params.PORT} \\
--network ${params.NETWORK} \\
--network-alias admin \\
--network-alias admin-${params.PORT} \\
-p ${params.PORT}:${params.PORT} \\
-v uploads_data:/data/uploads:rw \\
-e POSTGRES_DB=admin_db \\
-e POSTGRES_USER=admin \\
-e POSTGRES_PASSWORD=adminDbApp \\
-e POSTGRES_PORT=5454 \\
-e POSTGRES_HOST=${params.DB_HOST} \\
-e SERVER_PORT=${params.PORT} \\
-e BUILD_TIME='${buildTime}' \\
--restart unless-stopped \\
admin-panel-${params.PORT}:latest
--name admin-panel-${params.PORT} \\
--network ${params.NETWORK} \\
--network-alias admin \\
--network-alias admin-${params.PORT} \\
-p ${params.PORT}:${params.PORT} \\
-v uploads_data:/data/uploads:rw \\
-e POSTGRES_DB=admin_db \\
-e POSTGRES_USER=admin \\
-e POSTGRES_PASSWORD=adminDbApp \\
-e POSTGRES_PORT=5432 \\
-e POSTGRES_HOST=db \\
-e SERVER_PORT=${params.PORT} \\
-e BUILD_TIME='${buildTime}' \\
--restart unless-stopped \\
admin-panel-${params.PORT}:latest
echo '5. Проверка...'
echo '7. Проверка...'
sleep 10
if curl -s -f http://localhost:${params.PORT}/actuator/health > /dev/null 2>&1; then
@@ -134,7 +151,10 @@ pipeline {
echo 'URL: http://${params.SERVER}:${params.PORT}'
else
echo 'Проверка health не удалась'
docker logs admin-panel-${params.PORT} --tail=20
echo '=== Логи приложения: ==='
docker logs admin-panel-${params.PORT} --tail=30
echo '=== Логи БД: ==='
docker logs admin-db-${params.PORT} --tail=10
fi
"
"""
@@ -155,11 +175,8 @@ pipeline {
]) {
sh """
sshpass -p '${SSH_PASS}' ssh -o StrictHostKeyChecking=no ${SSH_USER}@${params.SERVER} "
echo 'Проверяем подключение к сети ${params.NETWORK}'
docker network inspect ${params.NETWORK} --format='{{.Name}}: {{range .Containers}}{{.Name}} {{end}}'
echo 'Проверяем алиас admin для контейнера admin-panel-${params.PORT}'
docker inspect admin-panel-${params.PORT} | grep -A 5 'Aliases'
echo '=== Контейнеры в сети ${params.NETWORK} ==='
docker network inspect ${params.NETWORK} --format='{{range .Containers}}{{.Name}} ({{.IPv4Address}}){{println}}{{end}}'
"
"""
}