Kelley Spoon | 7571839 | 2022-09-27 07:21:01 -0500 | [diff] [blame] | 1 | FROM jenkins/jenkins:2.332.3-lts-slim |
Kelley Spoon | db98b95 | 2022-09-07 06:46:55 -0500 | [diff] [blame] | 2 | |
| 3 | ENV JENKINS_JAVA_PARAMETERS="-server -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" |
| 4 | 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" |
| 5 | ENV JENKINS_OPTS="--sessionTimeout=1440 --sessionEviction=86400" |
| 6 | ENV JAVA_MEM=${JAVA_MEM:-8} |
Kelley Spoon | 7571839 | 2022-09-27 07:21:01 -0500 | [diff] [blame] | 7 | ENV ECLAIR_VERSION=3.12.0.0 |
Kelley Spoon | db98b95 | 2022-09-07 06:46:55 -0500 | [diff] [blame] | 8 | |
Kelley Spoon | 7571839 | 2022-09-27 07:21:01 -0500 | [diff] [blame] | 9 | # Install jenkins job builder |
| 10 | # Create plugins directory, symlinked on host machine |
| 11 | USER root |
| 12 | RUN mkdir -p /var/jenkins_plugins \ |
| 13 | && chown jenkins:jenkins /var/jenkins_plugins \ |
| 14 | && ln -s /var/jenkins_home /var/lib/jenkins \ |
| 15 | && ln -s /usr/bin/python3 /usr/bin/python \ |
| 16 | && mkdir -p /usr/share/groovy/lib \ |
| 17 | && apt-get -q update \ |
| 18 | && DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends \ |
| 19 | ansible \ |
| 20 | build-essential \ |
| 21 | debian-keyring \ |
| 22 | devscripts \ |
| 23 | dirmngr \ |
| 24 | jq \ |
| 25 | moreutils \ |
| 26 | python3-pip \ |
| 27 | python3-paramiko \ |
| 28 | python3-requests \ |
| 29 | python3-setuptools \ |
| 30 | python3-wheel \ |
| 31 | sshpass \ |
| 32 | virtualenv \ |
| 33 | wget \ |
| 34 | && apt-get clean \ |
| 35 | && pip install jenkins-job-builder==3.11.0 pyyaml==5.4.1 Jinja2==3.0.1 python-jenkins==1.7.0 \ |
| 36 | && rm -rf \ |
| 37 | /var/lib/apt/lists/* |
Kelley Spoon | db98b95 | 2022-09-07 06:46:55 -0500 | [diff] [blame] | 38 | USER jenkins |
Kelley Spoon | 7571839 | 2022-09-27 07:21:01 -0500 | [diff] [blame] | 39 | |
| 40 | # Install jenkins plugins |
| 41 | COPY plugins.txt . |
| 42 | # Install eclair plugin |
| 43 | COPY mods/eclair-${ECLAIR_VERSION}.hpi /var/jenkins_plugins/eclair.hpi |
| 44 | RUN jenkins-plugin-cli -f plugins.txt |
| 45 | RUN export JAVA_OPTS="-Xmx${JAVA_MEM}g -Xms${JAVA_MEM}g $JAVA_OPTS" |
Kelley Spoon | db98b95 | 2022-09-07 06:46:55 -0500 | [diff] [blame] | 46 | |
| 47 | # Forward ports to host |
| 48 | EXPOSE 2222 |