entrofi
9/26/2017 - 6:13 AM

Simple Basic Ubuntu Based Gerrit Docker File

Simple Basic Ubuntu Based Gerrit Docker File

FROM ubuntu:16.04
LABEL "author"="Hasan Comak"


ENV GERRIT_VERSION="2.13.9"
ENV GERRIT_RELEASE=1


ENV GERRIT_HOME /var/gerrit
ENV GERRIT_SITE ${GERRIT_HOME}/review_site
ENV GERRIT_USER gerrit

# DB setup parameters for MySql
ENV DB_HOSTNAME "10.100.32.90"
ENV DB_PORT 3306
ENV DB_MYSQL_DB gerrit_test
ENV DB_MYSQL_USER gerrit_db_usr
ENV DB_MYSQL_PASSWORD password


# Add Gerrit packages to repository
RUN echo "deb mirror://mirrorlist.gerritforge.com/deb gerrit contrib" > /etc/apt/sources.list.d/GerritForge.list
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 1871F775

# Allow remote connectivity and sudo
RUN apt-get update
RUN apt-key update
RUN apt-get -y install openssh-client sudo



# 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=$GERRIT_VERSION-$GERRIT_RELEASE && rm -f ${GERRIT_HOME}/logs/*

# Add our user and group first to make sure their IDs get assigned consistently,
# regardless of whatever dependencies get added
# RUN useradd -d "${GERRIT_HOME}" -s /sbin/nologin "${GERRIT_USER}"
RUN adduser "${GERRIT_USER}" sudo

USER ${GERRIT_USER}

# Create the directory for gerrit beforehand and give the ownership to the new user.
RUN sudo -u  ${GERRIT_USER} mkdir -p $GERRIT_SITE


# Add database section to gerrit configuration
RUN sudo -u  ${GERRIT_USER} git config -f "${GERRIT_HOME}/etc/gerrit.config" database.type  'MYSQL'
RUN sudo -u  ${GERRIT_USER} git config -f "${GERRIT_HOME}/etc/gerrit.config" database.hostname  ${DB_HOSTNAME}
RUN sudo -u  ${GERRIT_USER} git config -f "${GERRIT_HOME}/etc/gerrit.config" database.port  ${DB_PORT}
RUN sudo -u  ${GERRIT_USER} git config -f "${GERRIT_HOME}/etc/gerrit.config" database.database  ${DB_MYSQL_DB}
RUN sudo -u  ${GERRIT_USER} git config -f "${GERRIT_HOME}/etc/gerrit.config" database.username  ${DB_MYSQL_USER}
RUN sudo -u  ${GERRIT_USER} git config -f "${GERRIT_HOME}/etc/gerrit.config" database.password  ${DB_MYSQL_PASSWORD}
RUN sudo -u  ${GERRIT_USER} cat "${GERRIT_HOME}/etc/gerrit.config"


RUN java -jar ${GERRIT_HOME}/bin/gerrit.war init --batch --install-all-plugins -d ${GERRIT_HOME}


# Allow incoming traffic
EXPOSE 29418 8080
VOLUME ["${GERRIT_HOME}/git", "${GERRIT_HOME}/index", "${GERRIT_HOME}/cache", "${GERRIT_HOME}/db", "${GERRIT_HOME}/etc"]

# Start Gerrit
CMD sudo -u  ${GERRIT_USER} ${GERRIT_HOME}/bin/gerrit.sh start && tail -f ${GERRIT_HOME}/logs/error_log