Добавить laucher.sh
Добавление лаунчера на языке Bash
This commit is contained in:
parent
d8530d495d
commit
8ffa494fc6
1 changed files with 62 additions and 0 deletions
62
laucher.sh
Normal file
62
laucher.sh
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
#!/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"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue