- Add comprehensive OIDC authentication configuration for Jenkins - Include CloudronManifest.json in Docker image root directory - Create production packaging methodology template - Add OIDC authentication audit document - Jenkins package ready for live Cloudron testing Next: Test installation on live Cloudron instance
53 lines
1.7 KiB
Docker
53 lines
1.7 KiB
Docker
FROM cloudron/base:5.0.0
|
|
|
|
# Metadata labels
|
|
LABEL org.opencontainers.image.title="Jenkins CI/CD"
|
|
LABEL org.opencontainers.image.description="Cloudron package for Jenkins CI/CD Platform"
|
|
LABEL org.opencontainers.image.source="https://github.com/jenkinsci/jenkins"
|
|
|
|
# Install Java and Jenkins dependencies
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
openjdk-17-jdk \
|
|
curl \
|
|
ca-certificates \
|
|
git \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Set Java environment
|
|
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
|
|
ENV PATH=$JAVA_HOME/bin:$PATH
|
|
|
|
# Create Jenkins directories
|
|
RUN mkdir -p /app/data/jenkins_home && \
|
|
mkdir -p /app/data/plugins && \
|
|
mkdir -p /app/pkg && \
|
|
chown -R cloudron:cloudron /app/data
|
|
|
|
# Download and install Jenkins WAR file
|
|
ARG JENKINS_VERSION=2.450
|
|
RUN cd /tmp && \
|
|
curl -fsSL "https://get.jenkins.io/war/${JENKINS_VERSION}/jenkins.war" -o jenkins.war && \
|
|
mv jenkins.war /app/pkg/jenkins.war && \
|
|
chown cloudron:cloudron /app/pkg/jenkins.war
|
|
|
|
# Copy startup script and manifest
|
|
COPY start.sh /app/pkg/start.sh
|
|
COPY CloudronManifest.json /app/pkg/CloudronManifest.json
|
|
COPY CloudronManifest.json /CloudronManifest.json
|
|
RUN chmod +x /app/pkg/start.sh && chown cloudron:cloudron /app/pkg/start.sh /app/pkg/CloudronManifest.json /CloudronManifest.json
|
|
|
|
USER cloudron
|
|
|
|
# Expose Jenkins port
|
|
EXPOSE 8080
|
|
|
|
# Jenkins environment variables
|
|
ENV JENKINS_HOME=/app/data/jenkins_home \
|
|
JENKINS_OPTS="--httpPort=8080 --httpListenAddress=0.0.0.0" \
|
|
APP_PORT=8080
|
|
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
|
CMD curl -fsS http://127.0.0.1:${APP_PORT}/login || exit 1
|
|
|
|
CMD ["/app/pkg/start.sh"]
|