Итак, по сути, у меня есть образ докера, который начинается с точки входа, которая запускает цикл для проверки API с помощью завитка, например это:
Код: Выделить всё
check_server_version() {
if [ "$UPDATE_IN_PROGRESS" -eq 1 ]; then
return 0
fi
local current_version=$(get_game_version)
if [ -z "$current_version" ]; then
log_message "Failed to get game version from steam.inf" "error"
return 1
fi
local api_url="https://api.steampowered.com/ISteamApps/UpToDateCheck/v0001/?appid=730&version=$current_version&nocache=$(date +%s)"
local response=$(curl -s \
-H "Cache-Control: no-cache, no-store" \
-H "Pragma: no-cache" \
"$api_url")
local up_to_date=$(echo "$response" | jq -r '.response.up_to_date')
if [ "$up_to_date" = "false" ]; then
local required_version=$(echo "$response" | jq -r '.response.required_version')
local message=$(echo "$response" | jq -r '.response.message')
if [ ! -z "$required_version" ]; then
log_message "New version detected: $required_version (current: $current_version)" "running"
log_message "Steam message: $message" "running"
if [ -z "$UPDATE_COUNTDOWN_TIME" ]; then
UPDATE_COUNTDOWN_TIME=300
fi
log_message "Countdown initiated to restart server: $UPDATE_COUNTDOWN_TIME seconds" "running"
if [ ! -z "$UPDATE_COMMANDS" ]; then
start_update_countdown "$required_version"
fi
else
log_message "Failed to get required version from API response" "error"
log_message "Full response: $response" "debug"
return 1
fi
else
log_message "Server up to date. Current version: $current_version (checked at: $(date '+%Y-%m-%d %H:%M:%S'))" "debug"
fi
}
version_check_loop() {
while [ ${UPDATE_AUTO_RESTART:-0} -eq 1 ] && [ $UPDATE_IN_PROGRESS -eq 0 ]; do
sleep "${VERSION_CHECK_INTERVAL:-300}"
check_server_version
done
}
Почему это может произойти?
Проект доступен на GitHub для полного понимания сценария. лучше: https://github.com/K4ryuu/CS2-Egg
Я пытался добавить дополнительные параметры к URL-адресу, пытался использовать отсутствие кэша и так далее. Я попытался подделать ответ API при запуске новой версии, которая работает при запуске.
Подробнее здесь: https://stackoverflow.com/questions/792 ... l-the-time
Мобильная версия