Files
KNELProductionContainers/Cloudron/WorkInProgress/jenkins.knownelement.com/start.sh
2025-04-21 19:21:06 -05:00

50 lines
1.8 KiB
Bash

#!/bin/bash
set -e
# Jenkins home directory
JENKINS_HOME=/app/data/jenkins_home
# Create necessary directories if they don't exist
if [[ ! -d "${JENKINS_HOME}" ]]; then
echo "Initializing Jenkins home directory"
mkdir -p "${JENKINS_HOME}"
cp -r /tmp/data/jenkins_home/* "${JENKINS_HOME}/" || true
# Copy plugins
mkdir -p "${JENKINS_HOME}/plugins"
cp -r /tmp/data/plugins/* "${JENKINS_HOME}/plugins/" || true
# Create directory for JCasC
mkdir -p "${JENKINS_HOME}/casc_configs"
fi
# Apply proper permissions
chown -R cloudron:cloudron "${JENKINS_HOME}"
# Set up Jenkins environment variables
export JENKINS_HOME
export JENKINS_OPTS="--httpPort=8080"
# Disable setup wizard
export JAVA_OPTS="-Djenkins.install.runSetupWizard=false"
# Setup JCasC configuration based on environment
if [[ -n "${CLOUDRON_OAUTH_CLIENT_ID}" ]]; then
echo "Setting up OAuth authentication"
envsubst < /tmp/data/casc_configs/oauth.yaml > "${JENKINS_HOME}/casc_configs/oauth.yaml"
export CASC_JENKINS_CONFIG="${JENKINS_HOME}/casc_configs/oauth.yaml"
elif [[ -n "${CLOUDRON_LDAP_SERVER}" ]]; then
echo "Setting up LDAP authentication"
envsubst < /tmp/data/casc_configs/ldap.yaml > "${JENKINS_HOME}/casc_configs/ldap.yaml"
export CASC_JENKINS_CONFIG="${JENKINS_HOME}/casc_configs/ldap.yaml"
else
echo "Using default authentication"
envsubst < /tmp/data/casc_configs/default.yaml > "${JENKINS_HOME}/casc_configs/default.yaml"
export CASC_JENKINS_CONFIG="${JENKINS_HOME}/casc_configs/default.yaml"
fi
# Configure Jenkins URL
JENKINS_URL="${CLOUDRON_APP_ORIGIN}"
echo "Setting Jenkins URL to ${JENKINS_URL}"
export JENKINS_URL
# Start supervisord, which will start NGINX and Jenkins
exec /usr/bin/supervisord --nodaemon -c /etc/supervisor/supervisord.conf