blob: 81937f30630a918a1680c772887410f6312ea6bb [file] [log] [blame]
Kelley Spoon75718392022-09-27 07:21:01 -05001FROM jenkins/jenkins:2.332.3-lts-slim
Kelley Spoondb98b952022-09-07 06:46:55 -05002
3ENV 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"
4ENV 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"
5ENV JENKINS_OPTS="--sessionTimeout=1440 --sessionEviction=86400"
6ENV JAVA_MEM=${JAVA_MEM:-8}
Kelley Spoon75718392022-09-27 07:21:01 -05007ENV ECLAIR_VERSION=3.12.0.0
Kelley Spoondb98b952022-09-07 06:46:55 -05008
Kelley Spoon75718392022-09-27 07:21:01 -05009# Install jenkins job builder
10# Create plugins directory, symlinked on host machine
11USER root
12RUN 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 Spoondb98b952022-09-07 06:46:55 -050038USER jenkins
Kelley Spoon75718392022-09-27 07:21:01 -050039
40# Install jenkins plugins
41COPY plugins.txt .
42# Install eclair plugin
43COPY mods/eclair-${ECLAIR_VERSION}.hpi /var/jenkins_plugins/eclair.hpi
44RUN jenkins-plugin-cli -f plugins.txt
45RUN export JAVA_OPTS="-Xmx${JAVA_MEM}g -Xms${JAVA_MEM}g $JAVA_OPTS"
Kelley Spoondb98b952022-09-07 06:46:55 -050046
47# Forward ports to host
48EXPOSE 2222