mirror of
				https://github.com/casjaysdevdocker/gitea
				synced 2025-11-04 07:02:12 -05:00 
			
		
		
		
	🗃️ Committing everything that changed 🗃️
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				release-tag / release-image (push) Failing after 11m59s
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	release-tag / release-image (push) Failing after 11m59s
				
			rootfs/root/docker/setup/06-post.sh rootfs/usr/local/bin/start-runners rootfs/usr/local/etc/docker/init.d/05-dockerd.sh rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
This commit is contained in:
		@@ -27,7 +27,7 @@ exitCode=0
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
# Main script
 | 
					# Main script
 | 
				
			||||||
 | 
					mkdir -p /var/lib/docker
 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
# Set the exit code
 | 
					# Set the exit code
 | 
				
			||||||
exitCode=$?
 | 
					exitCode=$?
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,23 +1,21 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
set -e
 | 
					set -e
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
# Function to log messages with timestamp
 | 
					# Function to __log messages with timestamp
 | 
				
			||||||
log() {
 | 
					__log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"; }
 | 
				
			||||||
	echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Function to cleanup child processes on exit
 | 
					# Function to cleanup child processes on exit
 | 
				
			||||||
cleanup() {
 | 
					__cleanup() {
 | 
				
			||||||
	log "Shutting down runners..."
 | 
						__log "Shutting down runners..."
 | 
				
			||||||
	kill $(jobs -p) 2>/dev/null || true
 | 
						kill $(jobs -p) 2>/dev/null || true
 | 
				
			||||||
	wait
 | 
						wait
 | 
				
			||||||
	log "All runners stopped"
 | 
						__log "All runners stopped"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
# Set up signal handling
 | 
					# Set up signal handling
 | 
				
			||||||
trap cleanup SIGTERM SIGINT
 | 
					trap __cleanup SIGTERM SIGINT
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
# Validate required environment variables
 | 
					# Validate required environment variables
 | 
				
			||||||
if [ -n "$SERVER_ADDRESS" ]; then
 | 
					if [ -n "$SERVER_ADDRESS" ]; then
 | 
				
			||||||
	if ! echo "$SERVER_ADDRESS" | grep -q '://'; then
 | 
						if ! echo "$SERVER_ADDRESS" | grep -q '://'; then
 | 
				
			||||||
@@ -26,65 +24,58 @@ if [ -n "$SERVER_ADDRESS" ]; then
 | 
				
			|||||||
else
 | 
					else
 | 
				
			||||||
	SERVER_ADDRESS=http://$HOSTNAME
 | 
						SERVER_ADDRESS=http://$HOSTNAME
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
if [ -z "$SERVER_TOKEN" ]; then
 | 
					if [ -z "$SERVER_TOKEN" ]; then
 | 
				
			||||||
	log "ERROR: SERVER_TOKEN environment variable is required"
 | 
						__log "ERROR: SERVER_TOKEN environment variable is required"
 | 
				
			||||||
	exit 1
 | 
						exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
RUNNER_LABELS="${RUNNER_LABELS:-ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye}"
 | 
					RUNNER_LABELS="${RUNNER_LABELS:-ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye}"
 | 
				
			||||||
# Determine number of runners to start
 | 
					# Determine number of runners to start
 | 
				
			||||||
RUNNERS_COUNT=${RUNNERS_ENABLE:-1}
 | 
					RUNNERS_COUNT=${RUNNERS_ENABLE:-1}
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
# Validate RUNNERS_COUNT is a positive integer
 | 
					# Validate RUNNERS_COUNT is a positive integer
 | 
				
			||||||
if ! [[ "$RUNNERS_COUNT" =~ ^[0-9]+$ ]] || [ "$RUNNERS_COUNT" -lt 1 ]; then
 | 
					if ! [[ "$RUNNERS_COUNT" =~ ^[0-9]+$ ]] || [ "$RUNNERS_COUNT" -lt 1 ]; then
 | 
				
			||||||
	log "WARNING: Invalid RUNNERS_ENABLE value '$RUNNERS_ENABLE', defaulting to 1"
 | 
						__log "WARNING: Invalid RUNNERS_ENABLE value '$RUNNERS_ENABLE', defaulting to 1"
 | 
				
			||||||
	RUNNERS_COUNT=1
 | 
						RUNNERS_COUNT=1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
log "Starting $RUNNERS_COUNT act_runner instance(s)"
 | 
					__log "Starting $RUNNERS_COUNT act_runner instance(s)"
 | 
				
			||||||
log "Server Address: $SERVER_ADDRESS"
 | 
					__log "Server Address: $SERVER_ADDRESS"
 | 
				
			||||||
log "Runner Name Prefix: ${RUNNER_NAME_PREFIX:-runner}"
 | 
					__log "Runner Name Prefix: ${RUNNER_NAME_PREFIX:-runner}"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
# Function to start a single runner
 | 
					# Function to start a single runner
 | 
				
			||||||
start_runner() {
 | 
					__start_runner() {
 | 
				
			||||||
	local runner_id=$1
 | 
						local runner_id=$1
 | 
				
			||||||
	local runner_name="${RUNNER_NAME_PREFIX:-runner}-${runner_id}"
 | 
						local runner_name="${RUNNER_NAME_PREFIX:-runner}-${runner_id}"
 | 
				
			||||||
	local runner_dir="/data/runner-${runner_id}"
 | 
						local runner_dir="/config/act_runner/reg/${runner_name}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# Create runner directory
 | 
						# Create runner directory
 | 
				
			||||||
	mkdir -p "$runner_dir"
 | 
						mkdir -p "$runner_dir"
 | 
				
			||||||
	cd "$runner_dir"
 | 
						cd "$runner_dir"
 | 
				
			||||||
 | 
						__log "Starting runner: $runner_name (ID: $runner_id)"
 | 
				
			||||||
	log "Starting runner: $runner_name (ID: $runner_id)"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Register the runner (this creates the .runner file)
 | 
						# Register the runner (this creates the .runner file)
 | 
				
			||||||
	log "Registering runner: $runner_name"
 | 
						__log "Registering runner: $runner_name"
 | 
				
			||||||
	act_runner register \
 | 
						act_runner register --instance "$SERVER_ADDRESS" --token "$SERVER_TOKEN" --name "$runner_name" --labels "$RUNNER_LABELS" --no-interactive
 | 
				
			||||||
		--instance "$SERVER_ADDRESS" \
 | 
					 | 
				
			||||||
		--token "$SERVER_TOKEN" \
 | 
					 | 
				
			||||||
		--name "$runner_name" \
 | 
					 | 
				
			||||||
		--labels "$RUNNER_LABELS" \
 | 
					 | 
				
			||||||
		--no-interactive
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if [ $? -ne 0 ]; then
 | 
						if [ $? -ne 0 ]; then
 | 
				
			||||||
		log "ERROR: Failed to register runner $runner_name"
 | 
							__log "ERROR: Failed to register runner $runner_name"
 | 
				
			||||||
		return 1
 | 
							return 1
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Start the daemon
 | 
						# Start the daemon
 | 
				
			||||||
	log "Starting daemon for runner: $runner_name"
 | 
						__log "Starting daemon for runner: $runner_name"
 | 
				
			||||||
	exec act_runner daemon --config .runner
 | 
						exec act_runner daemon --config .runner
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
# Start runners in background
 | 
					# Start runners in background
 | 
				
			||||||
for i in $(seq 1 $RUNNERS_COUNT); do
 | 
					for i in $(seq 1 $RUNNERS_COUNT); do
 | 
				
			||||||
	(start_runner $i) &
 | 
						(__start_runner $i) &
 | 
				
			||||||
	sleep 2 # Small delay between starting runners
 | 
						sleep 2 # Small delay between starting runners
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
 | 
					unset i
 | 
				
			||||||
log "All $RUNNERS_COUNT runners started successfully"
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
log "Process IDs: $(jobs -p | tr '\n' ' ')"
 | 
					__log "All $RUNNERS_COUNT runners started successfully"
 | 
				
			||||||
 | 
					__log "Process IDs: $(jobs -p | tr '\n' ' ')"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
# Wait for all background processes
 | 
					# Wait for all background processes
 | 
				
			||||||
wait
 | 
					wait
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -188,6 +188,7 @@ __run_pre_execute_checks() {
 | 
				
			|||||||
	# Put command to execute in parentheses
 | 
						# Put command to execute in parentheses
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		[ -d "/etc/docker" ] || mkdir -p "/etc/docker"
 | 
							[ -d "/etc/docker" ] || mkdir -p "/etc/docker"
 | 
				
			||||||
 | 
							[ -d "/data/docker" ] || mkdir -p "/data/docker"
 | 
				
			||||||
		[ -d "/config/docker" ] || mkdir -p "/config/docker"
 | 
							[ -d "/config/docker" ] || mkdir -p "/config/docker"
 | 
				
			||||||
		[ -L "/config/docker/daemon.json" ] && unlink "/config/docker/daemon.json"
 | 
							[ -L "/config/docker/daemon.json" ] && unlink "/config/docker/daemon.json"
 | 
				
			||||||
		if [ -n "$DOCKER_REGISTRIES" ]; then
 | 
							if [ -n "$DOCKER_REGISTRIES" ]; then
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -362,7 +362,7 @@ __post_execute() {
 | 
				
			|||||||
	local postMessageST="Running post commands for $SERVICE_NAME"   # message to show at start
 | 
						local postMessageST="Running post commands for $SERVICE_NAME"   # message to show at start
 | 
				
			||||||
	local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion
 | 
						local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion
 | 
				
			||||||
	local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}"  # set hostname
 | 
						local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}"  # set hostname
 | 
				
			||||||
	export SERVER_ADDRESS="$INSTANCE_HOSTNAME" SERVER_TOKEN="${RUNNER_AUTH_TOKEN:-$SYS_AUTH_TOKEN}" RUNNERS_ENABLE="${RUNNERS_START:-5}" RUNNER_LABELS
 | 
						export SERVER_ADDRESS="$RUNNER_IP_ADDRESS:$GITEA_PORT" SERVER_TOKEN="${RUNNER_AUTH_TOKEN:-$SYS_AUTH_TOKEN}" RUNNERS_ENABLE="${RUNNERS_START:-5}" RUNNER_LABELS
 | 
				
			||||||
	# wait
 | 
						# wait
 | 
				
			||||||
	sleep $waitTime
 | 
						sleep $waitTime
 | 
				
			||||||
	# execute commands
 | 
						# execute commands
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user