| FROM jenkins/jenkins:2.462.1-lts-slim |
| |
| ENV JAVA_MEM=${JAVA_MEM:-8} |
| ENV JENKINS_JAVA_PARAMETERS="-server -Xmx${JAVA_MEM}g -Xms${JAVA_MEM}g -XX:+AlwaysPreTouch -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/jenkins/heapdump.log -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:+ExplicitGCInvokesConcurrent -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1 -XX:MaxMetaspaceExpansion=64M -Djenkins.model.Jenkins.logStartupPerformance=true" |
| ENV JAVA_OPTS="$JENKINS_JAVA_PARAMETERS -Djava.awt.headless=true -Dhudson.slaves.WorkspaceList='_' -Dhudson.model.ParametersAction.keepUndefinedParameters=true -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=30 -Dorg.eclipse.jetty.server.Request.maxFormContentSize=1000000" |
| ENV JENKINS_OPTS="--sessionTimeout=1440 --sessionEviction=86400" |
| |
| # Install jenkins job builder |
| # Create plugins directory, symlinked on host machine |
| USER root |
| RUN mkdir -p /var/jenkins_plugins \ |
| && chown jenkins:jenkins /var/jenkins_plugins \ |
| && ln -s /var/jenkins_home /var/lib/jenkins \ |
| && ln -s /usr/bin/python3 /usr/bin/python \ |
| && mkdir -p /usr/share/groovy/lib \ |
| && apt-get -q update \ |
| && DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends \ |
| ansible \ |
| build-essential \ |
| debian-keyring \ |
| devscripts \ |
| dirmngr \ |
| jq \ |
| moreutils \ |
| python3-pip \ |
| python3-paramiko \ |
| python3-requests \ |
| python3-setuptools \ |
| python3-wheel \ |
| sshpass \ |
| virtualenv \ |
| wget \ |
| && apt-get clean && \ |
| pip3 install --break-system-packages \ |
| jenkins-job-builder==5.0.3 Jinja2==3.0.1 python-jenkins==1.8.1 \ |
| && rm -rf /var/lib/apt/lists/* |
| USER jenkins |
| |
| # Install jenkins plugins |
| COPY plugins.txt . |
| # Let's try limiting this command to 4G since env vars are setting it |
| # to 8G, but we're building in ci on a system with only 2G mem |
| RUN export JAVA_OPTS="-Xmx2g -Xms2g" && jenkins-plugin-cli -f plugins.txt |
| |
| # Forward ports to host |
| EXPOSE 2222 |
| |