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