50 lines
1.8 KiB
Bash
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 |