forked from openshift/jenkins
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
90 lines (80 loc) · 3.57 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
FROM centos:centos7
# Jenkins image for OpenShift
#
# This image provides a Jenkins server, primarily intended for integration with
# OpenShift v3.
#
# Volumes:
# * /var/jenkins_home
# Environment:
# * $JENKINS_PASSWORD - Password for the Jenkins 'admin' user.
MAINTAINER Ben Parees <[email protected]>
ENV JENKINS_VERSION=1.651 \
HOME=/var/lib/jenkins \
JENKINS_HOME=/var/lib/jenkins
LABEL k8s.io.description="Jenkins is a continuous integration server" \
k8s.io.display-name="Jenkins 1.651" \
openshift.io.expose-services="8080:http" \
openshift.io.tags="jenkins,jenkins1,ci" \
io.openshift.s2i.scripts-url=image:///usr/libexec/s2i
# 8080 for main web interface, 50000 for slave agents
EXPOSE 8080 50000
RUN curl https://pkg.jenkins.io/redhat-stable/jenkins.repo -o /etc/yum.repos.d/jenkins.repo && \
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins-ci.org.key && \
yum install -y centos-release-scl-rh && \
INSTALL_PKGS="rsync gettext git tar zip unzip java-1.8.0-openjdk java-1.8.0-openjdk.i686 java-1.8.0-openjdk-devel java-1.8.0-openjdk-devel.i686 jenkins-1.651.3-1.1" && \
yum -y --setopt=tsflags=nodocs install $INSTALL_PKGS && \
rpm -V $INSTALL_PKGS && \
yum clean all && \
localedef -f UTF-8 -i en_US en_US.UTF-8 && \
set -o pipefail && curl -L https://github.com/openshift/origin/releases/download/v3.6.0-alpha.2/openshift-origin-client-tools-v3.6.0-alpha.2-3c221d5-linux-64bit.tar.gz | \
tar -zx && \
mv openshift*/oc /usr/local/bin && \
rm -rf openshift-origin-client-tools-*
COPY ./contrib/openshift /opt/openshift
COPY ./contrib/jenkins /usr/local/bin
ADD ./contrib/s2i /usr/libexec/s2i
RUN /usr/local/bin/plugins.sh /opt/openshift/base-plugins.txt && \
# need to create <plugin>.pinned files when upgrading "core" plugins like credentials or subversion that are bundled with the jenkins server
touch /opt/openshift/plugins/credentials.jpi.pinned && \
touch /opt/openshift/plugins/subversion.jpi.pinned && \
touch /opt/openshift/plugins/ssh-credentials.jpi.pinned && \
touch /opt/openshift/plugins/script-security.jpi.pinned && \
chmod 775 /etc/passwd && \
chmod -R 775 /etc/alternatives && \
chmod -R 775 /var/lib/alternatives && \
chmod -R 775 /usr/lib/jvm && \
chmod 775 /usr/bin && \
chmod 775 /usr/lib/jvm-exports && \
chmod 775 /usr/share/man/man1 && \
unlink /usr/bin/java && \
unlink /usr/bin/jjs && \
unlink /usr/bin/keytool && \
unlink /usr/bin/orbd && \
unlink /usr/bin/pack200 && \
unlink /usr/bin/policytool && \
unlink /usr/bin/rmid && \
unlink /usr/bin/rmiregistry && \
unlink /usr/bin/servertool && \
unlink /usr/bin/tnameserv && \
unlink /usr/bin/unpack200 && \
unlink /usr/lib/jvm-exports/jre && \
unlink /usr/share/man/man1/java.1.gz && \
unlink /usr/share/man/man1/jjs.1.gz && \
unlink /usr/share/man/man1/keytool.1.gz && \
unlink /usr/share/man/man1/orbd.1.gz && \
unlink /usr/share/man/man1/pack200.1.gz && \
unlink /usr/share/man/man1/policytool.1.gz && \
unlink /usr/share/man/man1/rmid.1.gz && \
unlink /usr/share/man/man1/rmiregistry.1.gz && \
unlink /usr/share/man/man1/servertool.1.gz && \
unlink /usr/share/man/man1/tnameserv.1.gz && \
unlink /usr/share/man/man1/unpack200.1.gz && \
chown -R 1001:0 /opt/openshift && \
rmdir /var/log/jenkins && \
/usr/local/bin/fix-permissions /opt/openshift && \
/usr/local/bin/fix-permissions /var/lib/jenkins && \
/usr/local/bin/fix-permissions /var/log
VOLUME ["/var/lib/jenkins"]
USER 1001
CMD ["/usr/libexec/s2i/run"]