FROM ubuntu:trusty
ENV GERRIT_USER gerrit2
ENV GERRIT_HOME /home/${GERRIT_USER}
ENV GERRIT_SITE ${GERRIT_HOME}/gerrit/site
ENV GERRIT_WAR ${GERRIT_HOME}/gerrit.war
ENV GERRIT_VERSION 2.9.3
RUN useradd -m ${GERRIT_USER}
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y openjdk-7-jre-headless git-core vim
ADD https://gerrit-releases.storage.googleapis.com/gerrit-${GERRIT_VERSION}.war /tmp/gerrit.war
ADD . /app
RUN mv /tmp/gerrit.war $GERRIT_WAR
RUN chown -R ${GERRIT_USER}:${GERRIT_USER} $GERRIT_HOME
USER $GERRIT_USER
WORKDIR $GERRIT_HOME
RUN mkdir -p $GERRIT_SITE
RUN chown -R ${GERRIT_USER}:${GERRIT_USER} $GERRIT_SITE
ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64/jre
RUN java -jar $GERRIT_WAR init --batch -d ${GERRIT_HOME}/gerrit
ADD gerrit.config $GERRIT_HOME/gerrit/etc/gerrit.config
VOLUME $GERRIT_SITE
ENV AUTH_TYPE LDAP
EXPOSE 8080 29418
CMD ["/app/start.sh"]
語境: 上述大部分dockerfile的就是我下車dockerhub對使用的碼頭工人一個容器中運行格里特。我所做的更改是設置GERRIT_SITE,創建此目錄,爲GERRIT_USER分配權限以使用此目錄並將其設置爲卷。當我構建碼頭圖像時,碼頭圖像已成功構建。但是,當我嘗試運行容器,我的主機卷安裝到泊塢窗容器容積我得到以下錯誤...Dockerfile添加捲到格里特容器
-bash-4.1$ docker run -p 8080:8080 -p 29418:29418 -v /home/user/gerritVolume/vols:/home/gerrit2/gerrit/site gerritvol
** ERROR: Gerrit is not initialized in /home/gerrit2/gerrit/site
cat: /home/gerrit2/gerrit/logs/error_log: No such file or directory
我確定主機目錄的所有權限存在。我一直在堅持這一點,我不知道如何去做這件事。我有些幫助。先謝謝你。
不,它不工作沒有-v選項也。顯示相同的錯誤。但是,當我回復這些變化時,圖像可以正常工作。我在gerrit home初始化之後嘗試創建GERRIT_SITE文件夾,這再次失敗,因此無法找到GERRIT_SITE。我嘗試的另一個配置是將GERRIT_HOME作爲我自己的卷。當使用-v選項運行時,它再次顯示相同的錯誤,但在沒有-v選項的情況下運行良好。 – Anusha