-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Generate a jenkins slave image for each docker API version
- Loading branch information
Camille Meulien
committed
May 28, 2016
1 parent
d53d095
commit 3549261
Showing
14 changed files
with
333 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/bash | ||
|
||
if [[ $# -lt 1 ]] || [[ "$1" == "-"* ]]; then | ||
echo Running java ${JAVA_OPTS} -jar "${JENKINS_SWARM_JAR}" -fsroot $HOME "$@" | ||
exec java ${JAVA_OPTS} -jar "${JENKINS_SWARM_JAR}" -fsroot $HOME "$@" | ||
fi | ||
|
||
exec "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
FROM debian:jessie | ||
|
||
MAINTAINER Camille Meulien <cmeulien@heliostech.fr> | ||
|
||
# | ||
# Jenkins slave install | ||
# | ||
ENV HOME=/home/jenkins-slave \ | ||
JENKINS_SWARM_VERSION=2.0 \ | ||
JENKINS_SWARM_JAR=/usr/share/jenkins/swarm-client-2.0-jar-with-dependencies.jar | ||
|
||
RUN apt-get update \ | ||
&& set -x \ | ||
&& apt-get install -y curl \ | ||
&& useradd -d ${HOME} -m jenkins-slave \ | ||
&& mkdir -p /usr/share/jenkins \ | ||
&& chmod 755 /usr/share/jenkins \ | ||
&& curl -sSLo ${JENKINS_SWARM_JAR} http://maven.jenkins-ci.org/content/repositories/releases/org/jenkins-ci/plugins/swarm-client/2.0/swarm-client-2.0-jar-with-dependencies.jar | ||
|
||
RUN env | grep -E "(JENKINS|JAVA)" > /etc/docker.properties | ||
|
||
COPY entrypoint.sh / | ||
RUN chmod 755 /entrypoint.sh \ | ||
&& chown root:root /entrypoint.sh | ||
ENTRYPOINT ["/entrypoint.sh"] | ||
|
||
# | ||
# Docker install | ||
# | ||
|
||
RUN apt-get install -y openjdk-7-jre-headless apt-transport-https ca-certificates \ | ||
&& apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D \ | ||
&& echo deb https://apt.dockerproject.org/repo debian-jessie main > /etc/apt/sources.list.d/docker.list \ | ||
&& apt-get update | ||
|
||
RUN apt-get install -y docker-engine=$(apt-cache show docker-engine | grep -F "Version: 1.7" | sort | tail -n1 | sed -r 's/Version: //') | ||
|
||
USER jenkins-slave | ||
|
||
VOLUME $HOME |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/bash | ||
|
||
if [[ $# -lt 1 ]] || [[ "$1" == "-"* ]]; then | ||
echo Running java ${JAVA_OPTS} -jar "${JENKINS_SWARM_JAR}" -fsroot $HOME "$@" | ||
exec java ${JAVA_OPTS} -jar "${JENKINS_SWARM_JAR}" -fsroot $HOME "$@" | ||
fi | ||
|
||
exec "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
FROM debian:jessie | ||
|
||
MAINTAINER Camille Meulien <cmeulien@heliostech.fr> | ||
|
||
# | ||
# Jenkins slave install | ||
# | ||
ENV HOME=/home/jenkins-slave \ | ||
JENKINS_SWARM_VERSION=2.0 \ | ||
JENKINS_SWARM_JAR=/usr/share/jenkins/swarm-client-2.0-jar-with-dependencies.jar | ||
|
||
RUN apt-get update \ | ||
&& set -x \ | ||
&& apt-get install -y curl \ | ||
&& useradd -d ${HOME} -m jenkins-slave \ | ||
&& mkdir -p /usr/share/jenkins \ | ||
&& chmod 755 /usr/share/jenkins \ | ||
&& curl -sSLo ${JENKINS_SWARM_JAR} http://maven.jenkins-ci.org/content/repositories/releases/org/jenkins-ci/plugins/swarm-client/2.0/swarm-client-2.0-jar-with-dependencies.jar | ||
|
||
RUN env | grep -E "(JENKINS|JAVA)" > /etc/docker.properties | ||
|
||
COPY entrypoint.sh / | ||
RUN chmod 755 /entrypoint.sh \ | ||
&& chown root:root /entrypoint.sh | ||
ENTRYPOINT ["/entrypoint.sh"] | ||
|
||
# | ||
# Docker install | ||
# | ||
|
||
RUN apt-get install -y openjdk-7-jre-headless apt-transport-https ca-certificates \ | ||
&& apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D \ | ||
&& echo deb https://apt.dockerproject.org/repo debian-jessie main > /etc/apt/sources.list.d/docker.list \ | ||
&& apt-get update | ||
|
||
RUN apt-get install -y docker-engine=$(apt-cache show docker-engine | grep -F "Version: 1.8" | sort | tail -n1 | sed -r 's/Version: //') | ||
|
||
USER jenkins-slave | ||
|
||
VOLUME $HOME |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/bash | ||
|
||
if [[ $# -lt 1 ]] || [[ "$1" == "-"* ]]; then | ||
echo Running java ${JAVA_OPTS} -jar "${JENKINS_SWARM_JAR}" -fsroot $HOME "$@" | ||
exec java ${JAVA_OPTS} -jar "${JENKINS_SWARM_JAR}" -fsroot $HOME "$@" | ||
fi | ||
|
||
exec "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
FROM debian:jessie | ||
|
||
MAINTAINER Camille Meulien <cmeulien@heliostech.fr> | ||
|
||
# | ||
# Jenkins slave install | ||
# | ||
ENV HOME=/home/jenkins-slave \ | ||
JENKINS_SWARM_VERSION=2.0 \ | ||
JENKINS_SWARM_JAR=/usr/share/jenkins/swarm-client-2.0-jar-with-dependencies.jar | ||
|
||
RUN apt-get update \ | ||
&& set -x \ | ||
&& apt-get install -y curl \ | ||
&& useradd -d ${HOME} -m jenkins-slave \ | ||
&& mkdir -p /usr/share/jenkins \ | ||
&& chmod 755 /usr/share/jenkins \ | ||
&& curl -sSLo ${JENKINS_SWARM_JAR} http://maven.jenkins-ci.org/content/repositories/releases/org/jenkins-ci/plugins/swarm-client/2.0/swarm-client-2.0-jar-with-dependencies.jar | ||
|
||
RUN env | grep -E "(JENKINS|JAVA)" > /etc/docker.properties | ||
|
||
COPY entrypoint.sh / | ||
RUN chmod 755 /entrypoint.sh \ | ||
&& chown root:root /entrypoint.sh | ||
ENTRYPOINT ["/entrypoint.sh"] | ||
|
||
# | ||
# Docker install | ||
# | ||
|
||
RUN apt-get install -y openjdk-7-jre-headless apt-transport-https ca-certificates \ | ||
&& apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D \ | ||
&& echo deb https://apt.dockerproject.org/repo debian-jessie main > /etc/apt/sources.list.d/docker.list \ | ||
&& apt-get update | ||
|
||
RUN apt-get install -y docker-engine=$(apt-cache show docker-engine | grep -F "Version: 1.9" | sort | tail -n1 | sed -r 's/Version: //') | ||
|
||
USER jenkins-slave | ||
|
||
VOLUME $HOME |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/bash | ||
|
||
if [[ $# -lt 1 ]] || [[ "$1" == "-"* ]]; then | ||
echo Running java ${JAVA_OPTS} -jar "${JENKINS_SWARM_JAR}" -fsroot $HOME "$@" | ||
exec java ${JAVA_OPTS} -jar "${JENKINS_SWARM_JAR}" -fsroot $HOME "$@" | ||
fi | ||
|
||
exec "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
FROM debian:jessie | ||
|
||
MAINTAINER Camille Meulien <cmeulien@heliostech.fr> | ||
|
||
# | ||
# Jenkins slave install | ||
# | ||
ENV HOME=/home/jenkins-slave \ | ||
JENKINS_SWARM_VERSION=2.0 \ | ||
JENKINS_SWARM_JAR=/usr/share/jenkins/swarm-client-2.0-jar-with-dependencies.jar | ||
|
||
RUN apt-get update \ | ||
&& set -x \ | ||
&& apt-get install -y curl \ | ||
&& useradd -d ${HOME} -m jenkins-slave \ | ||
&& mkdir -p /usr/share/jenkins \ | ||
&& chmod 755 /usr/share/jenkins \ | ||
&& curl -sSLo ${JENKINS_SWARM_JAR} http://maven.jenkins-ci.org/content/repositories/releases/org/jenkins-ci/plugins/swarm-client/2.0/swarm-client-2.0-jar-with-dependencies.jar | ||
|
||
RUN env | grep -E "(JENKINS|JAVA)" > /etc/docker.properties | ||
|
||
COPY entrypoint.sh / | ||
RUN chmod 755 /entrypoint.sh \ | ||
&& chown root:root /entrypoint.sh | ||
ENTRYPOINT ["/entrypoint.sh"] | ||
|
||
# | ||
# Docker install | ||
# | ||
|
||
RUN apt-get install -y openjdk-7-jre-headless apt-transport-https ca-certificates \ | ||
&& apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D \ | ||
&& echo deb https://apt.dockerproject.org/repo debian-jessie main > /etc/apt/sources.list.d/docker.list \ | ||
&& apt-get update | ||
|
||
RUN apt-get install -y docker-engine=$(apt-cache show docker-engine | grep -F "Version: 1.10" | sort | tail -n1 | sed -r 's/Version: //') | ||
|
||
USER jenkins-slave | ||
|
||
VOLUME $HOME |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/bash | ||
|
||
if [[ $# -lt 1 ]] || [[ "$1" == "-"* ]]; then | ||
echo Running java ${JAVA_OPTS} -jar "${JENKINS_SWARM_JAR}" -fsroot $HOME "$@" | ||
exec java ${JAVA_OPTS} -jar "${JENKINS_SWARM_JAR}" -fsroot $HOME "$@" | ||
fi | ||
|
||
exec "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
FROM debian:jessie | ||
|
||
MAINTAINER Camille Meulien <cmeulien@heliostech.fr> | ||
|
||
# | ||
# Jenkins slave install | ||
# | ||
ENV HOME=/home/jenkins-slave \ | ||
JENKINS_SWARM_VERSION=2.0 \ | ||
JENKINS_SWARM_JAR=/usr/share/jenkins/swarm-client-2.0-jar-with-dependencies.jar | ||
|
||
RUN apt-get update \ | ||
&& set -x \ | ||
&& apt-get install -y curl \ | ||
&& useradd -d ${HOME} -m jenkins-slave \ | ||
&& mkdir -p /usr/share/jenkins \ | ||
&& chmod 755 /usr/share/jenkins \ | ||
&& curl -sSLo ${JENKINS_SWARM_JAR} http://maven.jenkins-ci.org/content/repositories/releases/org/jenkins-ci/plugins/swarm-client/2.0/swarm-client-2.0-jar-with-dependencies.jar | ||
|
||
RUN env | grep -E "(JENKINS|JAVA)" > /etc/docker.properties | ||
|
||
COPY entrypoint.sh / | ||
RUN chmod 755 /entrypoint.sh \ | ||
&& chown root:root /entrypoint.sh | ||
ENTRYPOINT ["/entrypoint.sh"] | ||
|
||
# | ||
# Docker install | ||
# | ||
|
||
RUN apt-get install -y openjdk-7-jre-headless apt-transport-https ca-certificates \ | ||
&& apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D \ | ||
&& echo deb https://apt.dockerproject.org/repo debian-jessie main > /etc/apt/sources.list.d/docker.list \ | ||
&& apt-get update | ||
|
||
RUN apt-get install -y docker-engine=$(apt-cache show docker-engine | grep -F "Version: 1.11" | sort | tail -n1 | sed -r 's/Version: //') | ||
|
||
USER jenkins-slave | ||
|
||
VOLUME $HOME |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/bash | ||
|
||
if [[ $# -lt 1 ]] || [[ "$1" == "-"* ]]; then | ||
echo Running java ${JAVA_OPTS} -jar "${JENKINS_SWARM_JAR}" -fsroot $HOME "$@" | ||
exec java ${JAVA_OPTS} -jar "${JENKINS_SWARM_JAR}" -fsroot $HOME "$@" | ||
fi | ||
|
||
exec "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
FROM debian:jessie | ||
|
||
MAINTAINER Camille Meulien <cmeulien@heliostech.fr> | ||
|
||
# | ||
# Jenkins slave install | ||
# | ||
ENV HOME=/home/jenkins-slave \ | ||
JENKINS_SWARM_VERSION=<%= swarm_version %> \ | ||
JENKINS_SWARM_JAR=<%= swarm_jar_path %>/swarm-client-<%= swarm_version %>-jar-with-dependencies.jar | ||
|
||
RUN apt-get update \ | ||
&& set -x \ | ||
&& apt-get install -y curl \ | ||
&& useradd -d ${HOME} -m jenkins-slave \ | ||
&& mkdir -p <%= swarm_jar_path %> \ | ||
&& chmod 755 <%= swarm_jar_path %> \ | ||
&& curl -sSLo ${JENKINS_SWARM_JAR} http://maven.jenkins-ci.org/content/repositories/releases/org/jenkins-ci/plugins/swarm-client/<%= swarm_version %>/swarm-client-<%= swarm_version %>-jar-with-dependencies.jar | ||
|
||
RUN env | grep -E "(JENKINS|JAVA)" > /etc/docker.properties | ||
|
||
COPY entrypoint.sh / | ||
RUN chmod 755 /entrypoint.sh \ | ||
&& chown root:root /entrypoint.sh | ||
ENTRYPOINT ["/entrypoint.sh"] | ||
|
||
# | ||
# Docker install | ||
# | ||
|
||
RUN apt-get install -y openjdk-7-jre-headless apt-transport-https ca-certificates \ | ||
&& apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D \ | ||
&& echo deb https://apt.dockerproject.org/repo debian-jessie main > /etc/apt/sources.list.d/docker.list \ | ||
&& apt-get update | ||
|
||
RUN apt-get install -y docker-engine=$(apt-cache show docker-engine | grep -F "Version: <%= version[:docker] %>" | sort | tail -n1 | sed -r 's/Version: //') | ||
|
||
USER jenkins-slave | ||
|
||
VOLUME $HOME |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
require 'erb' | ||
require 'fileutils' | ||
|
||
DockerApiVersions = [ | ||
{docker: "1.11", api: "1.23"}, | ||
{docker: "1.10", api: "1.22"}, | ||
{docker: "1.9", api: "1.21"}, | ||
{docker: "1.8", api: "1.20"}, | ||
{docker: "1.7", api: "1.19"}, | ||
{docker: "1.6", api: "1.18"}, | ||
] | ||
|
||
task :generate do | ||
tpl = ERB.new(File.read("Dockerfile.erb")) | ||
swarm_version = "2.0" | ||
swarm_jar_path = "/usr/share/jenkins" | ||
DockerApiVersions.each do |version| | ||
path = version[:api] | ||
Dir.mkdir(path) unless Dir.exists?(path) | ||
File.open(File.join(path, "Dockerfile"), "w") do |f| | ||
f.write(tpl.result(binding)) | ||
end | ||
FileUtils.cp("entrypoint.sh", path) | ||
end | ||
end |