-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
75 lines (64 loc) · 2.29 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
FROM nettworksevtooling/fli4l-3.10-buildroot-container:latest
MAINTAINER Yves Schumann <[email protected]>
# Configuration for Jenkins swarm
# Default values for potential build time parameters
ARG JENKINS_IP="localhost"
ARG JENKINS_TUNNEL=""
ARG USERNAME="admin"
ARG PASSWORD="admin"
ARG DESCRIPTION="Swarm node with fli4l 3.10 buildroot"
ARG LABELS="linux swarm fli4l-3.10-buildroot"
ARG NAME="fli4l-3.10-buildroot"
ARG UID="1058"
ARG GID="1007"
# Environment variables for swarm client
ENV JENKINS_URL=http://$JENKINS_IP \
JENKINS_TUNNEL=$JENKINS_TUNNEL \
JENKINS_USERNAME=$USERNAME \
JENKINS_PASSWORD=$PASSWORD \
EXECUTORS=1 \
DESCRIPTION=$DESCRIPTION \
LABELS=$LABELS \
NAME=$NAME \
SWARM_PLUGIN_VERSION=3.25 \
WORK_DIR=/data/work \
SHARED_DIR=/data/shared/fli4l
# Setup jenkins account
# Create working directory
# Change user UID and GID
RUN groupadd --gid ${GID} fleis \
&& useradd --create-home --home-dir /home/jenkins --shell /bin/bash --uid ${UID} --gid ${GID} jenkins \
&& echo "jenkins:jenkins" | chpasswd \
&& chown jenkins:fleis /home/jenkins -R \
&& ulimit -v unlimited
RUN apt-get autoremove \
&& apt-get clean \
&& echo "deb http://http.debian.net/debian jessie-backports main" | tee --append /etc/apt/sources.list.d/jessie-backports.list \
&& apt-get update \
&& apt-get install -y -t jessie-backports openjdk-8-jdk \
&& update-java-alternatives -s java-1.8.0-openjdk-amd64
# Mount point for Jenkins .ssh folder
VOLUME /home/jenkins/.ssh
# Install swarm client
ADD "https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/swarm-client/${SWARM_PLUGIN_VERSION}/swarm-client-${SWARM_PLUGIN_VERSION}.jar" /data/swarm-client.jar
# Link ~/.fbr to shared location and update ownership
RUN mkdir -p ${SHARED_DIR}/.fbr \
&& ln -s ${SHARED_DIR}/.fbr /home/jenkins/.fbr \
&& chown -R jenkins:fleis /data
# Switch to user jenkins
USER jenkins
# Start ssh
#CMD ["/usr/sbin/sshd", "-D"]
CMD java \
-jar /data/swarm-client.jar \
-executors "${EXECUTORS}" \
-noRetryAfterConnected \
-description "${DESCRIPTION}" \
-fsroot "${WORK_DIR}" \
-master "${JENKINS_URL}" \
-tunnel "${JENKINS_TUNNEL}" \
-username "${JENKINS_USERNAME}" \
-password "${JENKINS_PASSWORD}" \
-labels "${LABELS}" \
-name "${NAME}" \
-sslFingerprints " "