49 lines
1.6 KiB
Docker
49 lines
1.6 KiB
Docker
FROM cloudron/base:4.2.0
|
|
|
|
# Add Jenkins repository key and repository, and install Jenkins and dependencies
|
|
RUN apt-get update && \
|
|
apt-get install -y gnupg curl software-properties-common && \
|
|
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | gpg --dearmor -o /usr/share/keyrings/jenkins-keyring.gpg && \
|
|
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.gpg] https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list && \
|
|
apt-get update && \
|
|
apt-get install -y openjdk-17-jdk jenkins fontconfig && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install required plugins for Cloudron integration
|
|
# Plugins: ldap, oic-auth, configuration-as-code, credentials
|
|
RUN curl -L https://repo.jenkins-ci.org/public/org/jenkins-ci/main/jenkins-cli/2.516.2/jenkins-cli-2.516.2.jar -o /usr/local/bin/jenkins-cli.jar && \
|
|
chmod +x /usr/local/bin/jenkins-cli.jar && \
|
|
java -jar /usr/local/bin/jenkins-cli.jar install-plugin \
|
|
ldap \
|
|
oic-auth \
|
|
configuration-as-code \
|
|
credentials
|
|
|
|
# Create template for casc.yaml
|
|
RUN mkdir -p /tmp/data/casc_configs
|
|
COPY casc_templates/ /tmp/data/casc_configs/
|
|
|
|
# Set up directory structure for Cloudron
|
|
RUN mkdir -p /app/data && \
|
|
mkdir -p /tmp/data/jenkins_home
|
|
|
|
# Copy startup script
|
|
COPY start.sh /app/code/
|
|
RUN chmod +x /app/code/start.sh
|
|
|
|
# Copy NGINX configuration
|
|
COPY nginx.conf /app/code/
|
|
|
|
# Copy supervisor configuration
|
|
COPY supervisor.conf /etc/supervisor/conf.d/
|
|
|
|
# Use the cloudron user for Jenkins
|
|
RUN usermod -a -G jenkins cloudron && \
|
|
chown -R cloudron:cloudron /tmp/data
|
|
|
|
WORKDIR /app/data
|
|
|
|
# Entry point
|
|
CMD ["/app/code/start.sh"]
|