-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
74 lines (57 loc) · 2.58 KB
/
Dockerfile
File metadata and controls
74 lines (57 loc) · 2.58 KB
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
FROM openjdk:8-jre-alpine
MAINTAINER Jiaquan He <jiaquan.he@9-a-m.com>
# Overridable defaults
ENV GERRIT_HOME /var/gerrit
ENV GERRIT_SITE ${GERRIT_HOME}/review_site
ENV GERRIT_WAR ${GERRIT_HOME}/gerrit.war
ENV GERRIT_VERSION 2.15.3
ENV GERRIT_USER gerrit2
ENV GERRIT_INIT_ARGS ""
# Add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
RUN adduser -D -h "${GERRIT_HOME}" -g "Gerrit User" -s /sbin/nologin "${GERRIT_USER}"
RUN set -x \
&& apk add --update --no-cache git openssh openssl bash perl perl-cgi git-gitweb curl su-exec procmail
# Download gerrit.war
RUN curl -fSsL https://gerrit-releases.storage.googleapis.com/gerrit-${GERRIT_VERSION}.war -o $GERRIT_WAR
# Only for local test
# COPY gerrit-${GERRIT_VERSION}.war $GERRIT_WAR
# Download Plugins
ENV PLUGIN_VERSION=bazel-stable-2.15
ENV GERRITFORGE_URL=https://gerrit-ci.gerritforge.com
ENV GERRITFORGE_ARTIFACT_DIR=lastSuccessfulBuild/artifact/bazel-genfiles/plugins
# delete-project
RUN curl -fSsL \
${GERRITFORGE_URL}/job/plugin-delete-project-${PLUGIN_VERSION}/${GERRITFORGE_ARTIFACT_DIR}/delete-project/delete-project.jar \
-o ${GERRIT_HOME}/delete-project.jar
# events-log
#This plugin is required by gerrit-trigger plugin of Jenkins.
RUN curl -fSsL \
${GERRITFORGE_URL}/job/plugin-events-log-${PLUGIN_VERSION}/${GERRITFORGE_ARTIFACT_DIR}/events-log/events-log.jar \
-o ${GERRIT_HOME}/events-log.jar
# gitiles
RUN curl -fSsL \
${GERRITFORGE_URL}/job/plugin-gitiles-${PLUGIN_VERSION}/${GERRITFORGE_ARTIFACT_DIR}/gitiles/gitiles.jar \
-o ${GERRIT_HOME}/gitiles.jar
# oauth2 plugin
ENV GERRIT_OAUTH_VERSION 2.14.6
RUN curl -fSsL \
https://github.com/davido/gerrit-oauth-provider/releases/download/v${GERRIT_OAUTH_VERSION}/gerrit-oauth-provider.jar \
-o ${GERRIT_HOME}/gerrit-oauth-provider.jar
# importer
RUN curl -fSsL \
${GERRITFORGE_URL}/job/plugin-importer-${PLUGIN_VERSION}/${GERRITFORGE_ARTIFACT_DIR}/importer/importer.jar \
-o ${GERRIT_HOME}/importer.jar
# Ensure the entrypoint scripts are in a fixed location
ADD scripts /scripts
ADD docker-entrypoint-init.d /docker-entrypoint-init.d
RUN chmod +x /scripts/* /docker-entrypoint-init.d/*
RUN ls /scripts/*
RUN ls /docker-entrypoint-init.d/*
#A directory has to be created before a volume is mounted to it.
#So gerrit user can own this directory.
RUN su-exec ${GERRIT_USER} mkdir -p $GERRIT_SITE
#Gerrit site directory is a volume, so configuration and repositories
#can be persisted and survive image upgrades.
VOLUME $GERRIT_SITE
EXPOSE 8080 29418
ENTRYPOINT ["/scripts/gerrit-entrypoint.sh"]