Move the init site to the Docker entrypoint
Make the Docker image site-independent by generating
the keys and the system repositories at startup time.
Change-Id: I0290e6b3395271fef48440ca09b72684e9dd610d
diff --git a/centos/7/Dockerfile b/centos/7/Dockerfile
index 3f8790a..86c91d0 100644
--- a/centos/7/Dockerfile
+++ b/centos/7/Dockerfile
@@ -8,14 +8,14 @@
# (pre-trans Gerrit script needs to have access to the Java command)
RUN yum -y install initscripts && \
yum -y install java-1.8.0-openjdk && \
- yum -y install gerrit-3.0.0.rc0-1 && rm -Rf /var/gerrit/{logs,tmp}/* && rm -Rf /var/gerrit/.gerritcodereview && \
+ yum -y install gerrit-3.0.0.rc0-1 && rm -f /var/gerrit/etc/{ssh,secure}* && rm -Rf /var/gerrit/git/* && \
yum -y clean all
+ADD entrypoint.sh /
+
USER gerrit
-RUN java -jar /var/gerrit/bin/gerrit.war init --batch --install-all-plugins -d /var/gerrit && \
- java -jar /var/gerrit/bin/gerrit.war reindex -d /var/gerrit && \
- git config -f /var/gerrit/etc/gerrit.config --add container.javaOptions "-Djava.security.egd=file:/dev/./urandom"
+RUN git config -f /var/gerrit/etc/gerrit.config --add container.javaOptions "-Djava.security.egd=file:/dev/./urandom"
ENV CANONICAL_WEB_URL=
@@ -24,7 +24,4 @@
VOLUME ["/var/gerrit/git", "/var/gerrit/index", "/var/gerrit/cache", "/var/gerrit/db", "/var/gerrit/etc"]
-# Start Gerrit
-CMD git config -f /var/gerrit/etc/gerrit.config gerrit.canonicalWebUrl "${CANONICAL_WEB_URL:-http://$HOSTNAME}" && \
- git config -f /var/gerrit/etc/gerrit.config noteDb.changes.autoMigrate true && \
- /var/gerrit/bin/gerrit.sh run
+ENTRYPOINT /entrypoint.sh
diff --git a/centos/7/Dockerfile-dev b/centos/7/Dockerfile-dev
index e34d8e2..2c2ee44 100644
--- a/centos/7/Dockerfile-dev
+++ b/centos/7/Dockerfile-dev
@@ -13,6 +13,8 @@
git && \
yum -y clean all
+ADD entrypoint.sh /
+
RUN adduser -m gerrit --home-dir /home/gerrit && \
mkdir -p /var/gerrit/bin && \
chown -R gerrit /var/gerrit
@@ -21,8 +23,6 @@
RUN mkdir -p /var/gerrit/etc && \
touch /var/gerrit/etc/gerrit.config && \
git config -f /var/gerrit/etc/gerrit.config auth.type DEVELOPMENT_BECOME_ANY_ACCOUNT && \
- java -jar /var/gerrit/bin/gerrit.war init --dev --batch --install-all-plugins --no-auto-start -d /var/gerrit && \
- java -jar /var/gerrit/bin/gerrit.war reindex -d /var/gerrit && \
git config --add -f /var/gerrit/etc/gerrit.config container.javaOptions "-Djava.security.egd=file:/dev/./urandom"
ENV CANONICAL_WEB_URL=
@@ -32,7 +32,4 @@
VOLUME ["/var/gerrit/git", "/var/gerrit/index", "/var/gerrit/cache", "/var/gerrit/db", "/var/gerrit/etc"]
-# Start Gerrit
-CMD git config -f /var/gerrit/etc/gerrit.config gerrit.canonicalWebUrl "${CANONICAL_WEB_URL:-http://$HOSTNAME:8080/}" && \
- git config -f /var/gerrit/etc/gerrit.config noteDb.changes.autoMigrate true && \
- /var/gerrit/bin/gerrit.sh run
\ No newline at end of file
+ENTRYPOINT /entrypoint.sh
diff --git a/centos/7/entrypoint.sh b/centos/7/entrypoint.sh
new file mode 100755
index 0000000..93bb2ff
--- /dev/null
+++ b/centos/7/entrypoint.sh
@@ -0,0 +1,13 @@
+#!/bin/bash -e
+
+if [ ! -d /var/gerrit/git/All-Projects.git ]
+then
+ echo "Initializing Gerrit site ..."
+ java -jar /var/gerrit/bin/gerrit.war init --batch --install-all-plugins -d /var/gerrit
+ java -jar /var/gerrit/bin/gerrit.war reindex -d /var/gerrit
+fi
+
+git config -f /var/gerrit/etc/gerrit.config gerrit.canonicalWebUrl "${CANONICAL_WEB_URL:-http://$HOSTNAME}"
+
+echo "Running Gerrit ..."
+exec /var/gerrit/bin/gerrit.sh run
diff --git a/ubuntu/18/Dockerfile b/ubuntu/18/Dockerfile
index 495ce8f..ba7e55b 100644
--- a/ubuntu/18/Dockerfile
+++ b/ubuntu/18/Dockerfile
@@ -14,11 +14,15 @@
# Install OpenJDK and Gerrit in two subsequent transactions
# (pre-trans Gerrit script needs to have access to the Java command)
RUN apt-get -y install openjdk-8-jdk
-RUN apt-get -y install gerrit=3.0.0.rc0-1 && rm -f /var/gerrit/logs/*
+RUN apt-get -y install gerrit=3.0.0.rc0-1 && \
+ rm -f /var/gerrit/etc/ssh* && \
+ rm -f /var/gerrit/etc/secure* && \
+ rm -Rf /var/gerrit/git/* && \
+ rm -Rf /var/gerrit/tmp/*
+
+ADD entrypoint.sh /
USER gerrit
-RUN java -jar /var/gerrit/bin/gerrit.war init --batch --install-all-plugins -d /var/gerrit
-RUN java -jar /var/gerrit/bin/gerrit.war reindex -d /var/gerrit
RUN git config -f /var/gerrit/etc/gerrit.config --add container.javaOptions "-Djava.security.egd=file:/dev/./urandom"
ENV CANONICAL_WEB_URL=
@@ -28,7 +32,4 @@
VOLUME ["/var/gerrit/git", "/var/gerrit/index", "/var/gerrit/cache", "/var/gerrit/db", "/var/gerrit/etc"]
-# Start Gerrit
-CMD git config -f /var/gerrit/etc/gerrit.config gerrit.canonicalWebUrl "${CANONICAL_WEB_URL:-http://$HOSTNAME}" && \
- git config -f /var/gerrit/etc/gerrit.config noteDb.changes.autoMigrate true && \
- /var/gerrit/bin/gerrit.sh run
+ENTRYPOINT /entrypoint.sh
diff --git a/ubuntu/18/Dockerfile-dev b/ubuntu/18/Dockerfile-dev
index 1f7082d..761b9d6 100644
--- a/ubuntu/18/Dockerfile-dev
+++ b/ubuntu/18/Dockerfile-dev
@@ -11,6 +11,8 @@
git && \
rm -rf /var/lib/apt/lists/*
+ADD entrypoint.sh /
+
RUN adduser --disabled-password --gecos "" gerrit --home /home/gerrit && \
mkdir -p /var/gerrit/bin && \
chown -R gerrit /var/gerrit
@@ -19,8 +21,6 @@
RUN mkdir -p /var/gerrit/etc && \
touch /var/gerrit/etc/gerrit.config && \
git config -f /var/gerrit/etc/gerrit.config auth.type DEVELOPMENT_BECOME_ANY_ACCOUNT && \
- java -jar /var/gerrit/bin/gerrit.war init --dev --batch --install-all-plugins -d /var/gerrit && \
- java -jar /var/gerrit/bin/gerrit.war reindex -d /var/gerrit && \
git config --add -f /var/gerrit/etc/gerrit.config container.javaOptions "-Djava.security.egd=file:/dev/./urandom"
ENV CANONICAL_WEB_URL=
@@ -30,7 +30,4 @@
VOLUME ["/var/gerrit/git", "/var/gerrit/index", "/var/gerrit/cache", "/var/gerrit/db", "/var/gerrit/etc"]
-# Start Gerrit
-CMD git config -f /var/gerrit/etc/gerrit.config gerrit.canonicalWebUrl "${CANONICAL_WEB_URL:-http://$HOSTNAME:8080/}" && \
- git config -f /var/gerrit/etc/gerrit.config noteDb.changes.autoMigrate true && \
- /var/gerrit/bin/gerrit.sh run
+ENTRYPOINT /entrypoint.sh
diff --git a/ubuntu/18/entrypoint.sh b/ubuntu/18/entrypoint.sh
new file mode 100755
index 0000000..93bb2ff
--- /dev/null
+++ b/ubuntu/18/entrypoint.sh
@@ -0,0 +1,13 @@
+#!/bin/bash -e
+
+if [ ! -d /var/gerrit/git/All-Projects.git ]
+then
+ echo "Initializing Gerrit site ..."
+ java -jar /var/gerrit/bin/gerrit.war init --batch --install-all-plugins -d /var/gerrit
+ java -jar /var/gerrit/bin/gerrit.war reindex -d /var/gerrit
+fi
+
+git config -f /var/gerrit/etc/gerrit.config gerrit.canonicalWebUrl "${CANONICAL_WEB_URL:-http://$HOSTNAME}"
+
+echo "Running Gerrit ..."
+exec /var/gerrit/bin/gerrit.sh run