2016-04-06 26 views
0
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"] 

Bağlam: Yukarıdaki dockerfile Çoğu zaman liman işçilerini kullanarak bir kapta Gerrit çalıştırmak için dockerhub, kurtulduğunu budur . Yaptığım değişiklikler, GERRIT_SITE değerini ayarlamak, bu dizini oluşturmak, GERRIT_USER için bu dizini kullanmak ve bir birim olarak ayarlamak için allot izni oluşturmaktır. Docker görüntüsünü oluşturduğumda, docker görüntüsü başarıyla oluşturuldu. Ben ... aşağıdaki hatayı alıyorum liman işçisi konteyner hacmine benim ev sahibi hacmini montaj, konteyner denemenizi Fakat 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 

Ben konak dizin tüm izinlere sahip bulunduğundan emin yaptı. Bu konuda takıldım ve bunun nasıl gideceğinden emin değilim. Biraz yardım ederim. Şimdiden teşekkür ederim. kabın içine /home/gerrit2/gerrit/site dizin boş olacak böylece ana bilgisayarda mevcut bir siteyi yoksa bağlama montaj Barındırıcınıza Bir dizini, ana bilgisayardaki dosyaları bağlamak olduğuna göre,, öncelikli olarak

cevap

0

Konteynerin içine monte edilir.

Gerrit'i kullanmayla ilgili deneyimim yok, ama bu çizgiye göre; https://code.google.com/p/gerrit/source/browse/gerrit-pgm/src/main/resources/com/google/gerrit/pgm/gerrit.sh?r=967eae196f5433394cdc5e63fe4d154ef458bb39#164

Site dosyalarının bu dizinde bulunup bulunmadığına dair gerrit denetimleri gibi görünüyor ve değilse, hata üretiyor.

Kapsayıcıyı çalıştırırken -v seçeneğini kullanmıyorsanız kap doğru şekilde çalışıyor mu?

+0

Hayır, –v seçeneği olmadan da çalışmıyor. Aynı hata gösteriliyor. Ancak, görüntü değişiklikleri geri alırken iyi çalışıyor, ben yaptım. Gerrit ev başlatıldıktan sonra GERRIT_SITE klasörünü oluşturmayı denedim, ki bu tekrar GERRIT_SITE bulunamadığından başarısız oldu. Denediğim bir diğer yapılandırma da hacim olarak GERRIT_HOME oluşturuyordu. –v seçeneği ile çalıştırıldığında aynı hatayı tekrar gösterir, ancak –v seçeneği olmadan düzgün çalışır. – Anusha