Merge branch 'master' into tini
This commit is contained in:
commit
f13453662c
14
Dockerfile
14
Dockerfile
|
@ -27,12 +27,14 @@ VOLUME /var/jenkins_home
|
|||
# or config file with your custom jenkins Docker image.
|
||||
RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
|
||||
|
||||
ENV TINI_VERSION 0.16.1
|
||||
ENV TINI_SHA 5e01734c8b2e6429a1ebcc67e2d86d3bb0c4574dd7819a0aff2dca784580e040
|
||||
|
||||
# Use tini as subreaper in Docker container to adopt zombie processes
|
||||
RUN curl -fsSL https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-static-amd64 -o /bin/tini && chmod +x /bin/tini \
|
||||
&& echo "$TINI_SHA /bin/tini" | sha256sum -c -
|
||||
ARG TINI_VERSION=v0.16.1
|
||||
RUN curl -fsSL https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-static-$(dpkg --print-architecture) -o /sbin/tini \
|
||||
&& curl -fsSL https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-static-$(dpkg --print-architecture).asc -o /sbin/tini.asc \
|
||||
&& gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
|
||||
&& gpg --verify /sbin/tini.asc \
|
||||
&& rm -rf /sbin/tini.asc /root/.gnupg \
|
||||
&& chmod +x /sbin/tini
|
||||
|
||||
COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-agent-port.groovy
|
||||
|
||||
|
@ -67,7 +69,7 @@ USER ${user}
|
|||
|
||||
COPY jenkins-support /usr/local/bin/jenkins-support
|
||||
COPY jenkins.sh /usr/local/bin/jenkins.sh
|
||||
ENTRYPOINT ["/bin/tini", "--", "/usr/local/bin/jenkins.sh"]
|
||||
ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/jenkins.sh"]
|
||||
|
||||
# from a derived Dockerfile, can use `RUN plugins.sh active.txt` to setup /usr/share/jenkins/ref/plugins from a support bundle
|
||||
COPY plugins.sh /usr/local/bin/plugins.sh
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
# DO NOT UPGRADE alpine until https://github.com/jenkinsci/docker/issues/508 is fixed
|
||||
FROM openjdk:8u121-jdk-alpine
|
||||
FROM openjdk:8-jdk-alpine
|
||||
|
||||
RUN apk add --no-cache git openssh-client curl unzip bash ttf-dejavu coreutils
|
||||
RUN apk add --no-cache git openssh-client curl unzip bash ttf-dejavu coreutils tini
|
||||
|
||||
ARG user=jenkins
|
||||
ARG group=jenkins
|
||||
|
@ -14,27 +13,20 @@ ENV JENKINS_HOME /var/jenkins_home
|
|||
ENV JENKINS_SLAVE_AGENT_PORT ${agent_port}
|
||||
|
||||
# Jenkins is run with user `jenkins`, uid = 1000
|
||||
# If you bind mount a volume from the host or a data container,
|
||||
# If you bind mount a volume from the host or a data container,
|
||||
# ensure you use the same uid
|
||||
RUN addgroup -g ${gid} ${group} \
|
||||
&& adduser -h "$JENKINS_HOME" -u ${uid} -G ${group} -s /bin/bash -D ${user}
|
||||
|
||||
# Jenkins home directory is a volume, so configuration and build history
|
||||
# Jenkins home directory is a volume, so configuration and build history
|
||||
# can be persisted and survive image upgrades
|
||||
VOLUME /var/jenkins_home
|
||||
|
||||
# `/usr/share/jenkins/ref/` contains all reference configuration we want
|
||||
# to set on a fresh new installation. Use it to bundle additional plugins
|
||||
# `/usr/share/jenkins/ref/` contains all reference configuration we want
|
||||
# to set on a fresh new installation. Use it to bundle additional plugins
|
||||
# or config file with your custom jenkins Docker image.
|
||||
RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
|
||||
|
||||
ENV TINI_VERSION 0.16.1
|
||||
ENV TINI_SHA 5e01734c8b2e6429a1ebcc67e2d86d3bb0c4574dd7819a0aff2dca784580e040
|
||||
|
||||
# Use tini as subreaper in Docker container to adopt zombie processes
|
||||
RUN curl -fsSL https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-static-amd64 -o /bin/tini && chmod +x /bin/tini \
|
||||
&& echo "$TINI_SHA /bin/tini" | sha256sum -c -
|
||||
|
||||
COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-agent-port.groovy
|
||||
|
||||
# jenkins version being bundled in this docker image
|
||||
|
@ -47,7 +39,7 @@ ARG JENKINS_SHA=2d71b8f87c8417f9303a73d52901a59678ee6c0eefcf7325efed6035ff39372a
|
|||
# Can be used to customize where jenkins.war get downloaded from
|
||||
ARG JENKINS_URL=https://repo.jenkins-ci.org/public/org/jenkins-ci/main/jenkins-war/${JENKINS_VERSION}/jenkins-war-${JENKINS_VERSION}.war
|
||||
|
||||
# could use ADD but this one does not check Last-Modified header neither does it allow to control checksum
|
||||
# could use ADD but this one does not check Last-Modified header neither does it allow to control checksum
|
||||
# see https://github.com/docker/docker/issues/8331
|
||||
RUN curl -fsSL ${JENKINS_URL} -o /usr/share/jenkins/jenkins.war \
|
||||
&& echo "${JENKINS_SHA} /usr/share/jenkins/jenkins.war" | sha256sum -c -
|
||||
|
@ -68,7 +60,7 @@ USER ${user}
|
|||
|
||||
COPY jenkins-support /usr/local/bin/jenkins-support
|
||||
COPY jenkins.sh /usr/local/bin/jenkins.sh
|
||||
ENTRYPOINT ["/bin/tini", "--", "/usr/local/bin/jenkins.sh"]
|
||||
ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/jenkins.sh"]
|
||||
|
||||
# from a derived Dockerfile, can use `RUN plugins.sh active.txt` to setup /usr/share/jenkins/ref/plugins from a support bundle
|
||||
COPY plugins.sh /usr/local/bin/plugins.sh
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
FROM openjdk:8-jdk-slim
|
||||
|
||||
RUN apt-get update && apt-get install -y git curl && rm -rf /var/lib/apt/lists/*
|
||||
RUN apt-get update && apt-get install -y git curl gpg && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ARG user=jenkins
|
||||
ARG group=jenkins
|
||||
|
@ -27,12 +27,14 @@ VOLUME /var/jenkins_home
|
|||
# or config file with your custom jenkins Docker image.
|
||||
RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
|
||||
|
||||
ENV TINI_VERSION 0.16.1
|
||||
ENV TINI_SHA 5e01734c8b2e6429a1ebcc67e2d86d3bb0c4574dd7819a0aff2dca784580e040
|
||||
|
||||
# Use tini as subreaper in Docker container to adopt zombie processes
|
||||
RUN curl -fsSL https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-static-amd64 -o /bin/tini && chmod +x /bin/tini \
|
||||
&& echo "$TINI_SHA /bin/tini" | sha256sum -c -
|
||||
ARG TINI_VERSION=v0.16.1
|
||||
RUN curl -fsSL https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-static-$(dpkg --print-architecture) -o /sbin/tini \
|
||||
&& curl -fsSL https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-static-$(dpkg --print-architecture).asc -o /sbin/tini.asc \
|
||||
&& gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
|
||||
&& gpg --verify /sbin/tini.asc \
|
||||
&& rm -rf /sbin/tini.asc /root/.gnupg \
|
||||
&& chmod +x /sbin/tini
|
||||
|
||||
COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-agent-port.groovy
|
||||
|
||||
|
@ -67,7 +69,7 @@ USER ${user}
|
|||
|
||||
COPY jenkins-support /usr/local/bin/jenkins-support
|
||||
COPY jenkins.sh /usr/local/bin/jenkins.sh
|
||||
ENTRYPOINT ["/bin/tini", "--", "/usr/local/bin/jenkins.sh"]
|
||||
ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/jenkins.sh"]
|
||||
|
||||
# from a derived Dockerfile, can use `RUN plugins.sh active.txt` to setup /usr/share/jenkins/ref/plugins from a support bundle
|
||||
COPY plugins.sh /usr/local/bin/plugins.sh
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/env groovy
|
||||
|
||||
properties([
|
||||
buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '5')),
|
||||
pipelineTriggers([cron('@daily')]),
|
||||
buildDiscarder(logRotator(numToKeepStr: '50', artifactNumToKeepStr: '5')),
|
||||
pipelineTriggers([cron('H H/6 * * *')]),
|
||||
])
|
||||
|
||||
node('docker') {
|
||||
|
|
|
@ -151,7 +151,7 @@ COPY custom.groovy /usr/share/jenkins/ref/init.groovy.d/custom.groovy
|
|||
## Preinstalling plugins
|
||||
|
||||
You can rely on the `install-plugins.sh` script to pass a set of plugins to download with their dependencies.
|
||||
This script will perform downloads from update centers, an internet access is required for the default update centers.
|
||||
This script will perform downloads from update centers, and internet access is required for the default update centers.
|
||||
|
||||
### Setting update centers
|
||||
|
||||
|
|
|
@ -191,7 +191,13 @@ main() {
|
|||
# Read plugins from stdin or from the command line arguments
|
||||
if [[ ($# -eq 0) ]]; then
|
||||
while read -r line || [ "$line" != "" ]; do
|
||||
plugins+=("${line}")
|
||||
# Remove leading/trailing spaces, comments, and empty lines
|
||||
plugin=$(echo "${line}" | sed -e 's/^[ \t]*//g' -e 's/[ \t]*$//g' -e 's/[ \t]*#.*$//g' -e '/^[ \t]*$/d')
|
||||
|
||||
# Avoid adding empty plugin into array
|
||||
if [ ${#plugin} -ne 0 ]; then
|
||||
plugins+=("${plugin}")
|
||||
fi
|
||||
done
|
||||
else
|
||||
plugins=("$@")
|
||||
|
|
|
@ -41,13 +41,14 @@ is-published() {
|
|||
opts="-v"
|
||||
fi
|
||||
local http_code;
|
||||
http_code=$(curl $opts -q -fsSL -o /dev/null -w "%{http_code}" -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -H "Authorization: Bearer $TOKEN" "https://index.docker.io/v2/jenkins/jenkins/manifests/$tag")
|
||||
http_code=$(curl $opts -q -fsL -o /dev/null -w "%{http_code}" -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -H "Authorization: Bearer $TOKEN" "https://index.docker.io/v2/jenkins/jenkins/manifests/$tag")
|
||||
if [ "$http_code" -eq "404" ]; then
|
||||
false
|
||||
elif [ "$http_code" -eq "200" ]; then
|
||||
true
|
||||
else
|
||||
echo "Received unexpected http code from Docker hub: $http_code"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -53,6 +53,8 @@ SUT_IMAGE=$(sut_image)
|
|||
}
|
||||
|
||||
@test "plugins are installed with install-plugins.sh from a plugins file" {
|
||||
run docker_build_child $SUT_IMAGE-install-plugins $BATS_TEST_DIRNAME/install-plugins
|
||||
assert_success
|
||||
run docker_build_child $SUT_IMAGE-install-plugins-pluginsfile $BATS_TEST_DIRNAME/install-plugins/pluginsfile
|
||||
assert_success
|
||||
refute_line --partial 'Skipping already installed dependency'
|
||||
|
@ -82,6 +84,8 @@ SUT_IMAGE=$(sut_image)
|
|||
}
|
||||
|
||||
@test "plugins are installed with install-plugins.sh even when already exist" {
|
||||
run docker_build_child $SUT_IMAGE-install-plugins $BATS_TEST_DIRNAME/install-plugins
|
||||
assert_success
|
||||
run docker_build_child $SUT_IMAGE-install-plugins-update $BATS_TEST_DIRNAME/install-plugins/update --no-cache
|
||||
assert_success
|
||||
assert_line --partial 'Skipping already installed dependency javadoc'
|
||||
|
|
|
@ -1,5 +1,21 @@
|
|||
# comment line should be skipped
|
||||
|
||||
# simple case
|
||||
ant:1.3
|
||||
maven-plugin:2.7.1
|
||||
mesos:0.13.0
|
||||
git:latest
|
||||
filesystem_scm:experimental
|
||||
|
||||
# trailing spaces
|
||||
maven-plugin:2.7.1
|
||||
|
||||
# leading spaces
|
||||
mesos:0.13.0
|
||||
|
||||
# leading spaces, and trailing spaces
|
||||
git:latest
|
||||
|
||||
# with comments at the end
|
||||
filesystem_scm:experimental # comment at the end
|
||||
|
||||
# empty line
|
||||
|
||||
#
|
||||
# empty line
|
||||
|
|
Loading…
Reference in New Issue