blob: db7cf2237e355c3fea07be79155b823573989512 [file] [log] [blame]
FROM jenkins/jenkins:2.387.3-lts-slim
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"
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"
ENV JAVA_MEM=${JAVA_MEM:-8}
ENV ECLAIR_VERSION=3.12.0.0
# 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 \
&& pip install jenkins-job-builder==3.11.0 pyyaml==5.4.1 Jinja2==3.0.1 python-jenkins==1.7.0 \
&& rm -rf \
/var/lib/apt/lists/*
USER jenkins
# Install jenkins plugins
COPY plugins.txt .
# Install eclair plugin
COPY mods/eclair-${ECLAIR_VERSION}.hpi /var/jenkins_plugins/eclair.hpi
RUN jenkins-plugin-cli -f plugins.txt
RUN export JAVA_OPTS="-Xmx${JAVA_MEM}g -Xms${JAVA_MEM}g $JAVA_OPTS"
# Forward ports to host
EXPOSE 2222