add section admin permission

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