act_runner_compose/laucher.sh
mrutsy 8ffa494fc6 Добавить laucher.sh
Добавление лаунчера на языке Bash
2025-03-27 20:37:07 +00:00

62 lines
No EOL
2.5 KiB
Bash

#!/bin/bash
# Установим уровень логирования
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1"
}
ensure_https() {
local url="$1"
if [[ ! "$url" =~ ^https?:// ]]; then
log "Добавление 'https://' к адресу: $url"
url="https://$url"
fi
echo "$url"
}
run_docker_runner() {
local registration_token="$1"
local instance_url="$2"
local runner_name="$3"
local runner_labels="$4"
local container_name="zhs-code-runner"
# Остановка и удаление контейнера, если он существует
log "Остановка контейнера '$container_name' (если он существует)..."
docker stop "$container_name" || true
docker rm "$container_name" || true
# Формируем команду для запуска контейнера
local command="docker run -d --name $container_name --restart always -v /var/run/docker.sock:/var/run/docker.sock -e GITEA_RUNNER_REGISTRATION_TOKEN=$registration_token -e GITEA_INSTANCE_URL=$instance_url -e GITEA_RUNNER_NAME=$runner_name"
# Добавляем метки, если они указаны
if [ -n "$runner_labels" ]; then
command+=" -e GITEA_RUNNER_LABELS=$runner_labels"
fi
command+=" gitea/act_runner:latest"
# Выполняем команду
log "Запуск команды: $command"
eval $command
exit_code=$?
if [ $exit_code -eq 0 ]; then
log "Исполнитель успешно запущен."
else
log "Ошибка при запуске исполнителя контейнера: Код ошибки $exit_code"
fi
}
# Основной скрипт
read -p "Введите имя исполнителя: " runner_name
# Запрашиваем URL, используя значение по умолчанию
read -p "Введите URL адрес (по умолчанию https://code.zhs.one): " instance_url_input
instance_url=${instance_url_input:-"https://code.zhs.one"} # Используем URL по умолчанию, если ввод пустой
instance_url=$(ensure_https "$instance_url") # Убедимся, что URL содержит https
read -p "Введите секретный ключ: " access_token
read -p "Введите метки, разделенные запятыми (оставьте пустым, если нет меток): " runner_labels
run_docker_runner "$access_token" "$instance_url" "$runner_name" "$runner_labels"