2014-12-30 6 views
1

У меня есть gitlab с gitlab ci и бегуном, все работает отлично в CoreOs Machine.Maven Hangs Загрузка внутри контейнера Docker

Все 3 службы работают, используя следующие dockerfiles служебные файлы и скрипт сборки:

Сложение Автор сценария:

git submodule update --init 

ls -la 

mvn install 

CI сервис:

[Unit] 
    Description=CI 

    # Requirements 
    Requires=docker.service 
    Requires=db.service 
    Requires=gitlab.service 
    Requires=redis.service 


    # Dependency ordering 
    After=docker.service 
    After=db.service 
    After=gitlab.service 
    After=redis.service 

    [Service] 
    User=core 

    # Let the process take awhile to start up (for first run Docker containers) 
    TimeoutStartSec=0 

    # Get CoreOS environmental variables 
    EnvironmentFile=/etc/environment 

    # Pre-start and Start 
    ## Directives with "=-" are allowed to fail without consequence 
    KillMode=none 
    Restart=always 
    RestartSec=2 

    ExecStartPre=-/usr/bin/docker kill ci 
    ExecStartPre=-/usr/bin/docker rm ci 
    ExecStartPre=/usr/bin/docker pull sameersbn/gitlab-ci:5.2.0 
    ExecStart=/usr/bin/docker run --name ci \ 
    -e 'DB_TYPE=mysql' -e 'DB_HOST=${COREOS_PRIVATE_IPV4}' -e 'DB_NAME=***' -e 'DB_USER=***' -e 'DB_PASS=********'\ 
    -e 'REDIS_HOST=${COREOS_PRIVATE_IPV4}' -e 'REDIS_PORT=6379'\ 
    -e 'GITLAB_URL=http://${COREOS_PRIVATE_IPV4}:8081/'\ 
    -e 'GITLAB_CI_HOST=${COREOS_PRIVATE_IPV4}'\ 
    -e 'GITLAB_CI_PORT=8080'\ 
    -e 'GITLAB_CI_HTTPS=true'\ 
    -e 'GITLAB_CI_EMAIL=*****************'\ 
    -e 'SMTP_USER=**********' -e 'SMTP_PASS=**********'\ 
    -p 8080:80 \ 
    sameersbn/gitlab-ci:5.2.0 

    # Stop 
    ExecStop=/usr/bin/docker stop ci 

CI-бегун службы:

 [Unit] 
     Description=CI Runner Maven & Dart 

     # Requirements 
     Requires=docker.service 
     Requires=ci.service 
     Requires=db.service 
     Requires=gitlab.service 
     Requires=redis.service 

     # Dependency ordering 
     After=docker.service 
     After=ci.service 
     After=db.service 
     After=gitlab.service 
     After=redis.service 


     [Service] 
     User=core 

     # Let the process take awhile to start up (for first run Docker containers) 
     TimeoutStartSec=0 

     RemainAfterExit=yes 

     # Get CoreOS environmental variables 
     EnvironmentFile=/etc/environment 

     #Pre-start and Start 
     ## Directives with "=-" are allowed to fail without consequence 

     ExecStartPre=-/usr/bin/docker kill ci-runner-maven-dart 
     ExecStartPre=-/usr/bin/docker rm ci-runner-maven-dart 
     ExecStartPre=/usr/bin/docker pull registry.globaleda.pt/globaleda/ci-runner-maven-dart:latest 
     ExecStart=/usr/bin/docker run --name ci-runner-maven-dart -d \ 
      -v /data/ci-runner-maven-dart:/home/gitlab_ci_runner/data \ 
      registry.globaleda.pt/globaleda/ci-runner-maven-dart:latest 

     # Stop 
     ExecStop=/usr/bin/docker stop ci-runner-maven-dart 

Кий бегун dockerfile:

FROM lemonbar/gitlab-runner-jdk-maven:1.0 
MAINTAINER [email protected] 

RUN apt-get update 
RUN apt-get install curl -y 

# Install dartIn the dockerfile i added ENV MAVEN_OPTS -Djava.net.preferIPv4Stack=true 

RUN apt-get install apt-transport-https -y 
RUN sh -c 'curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -' 
RUN sh -c 'curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list' 
RUN apt-get update 
RUN apt-get install dart -y 
ENV DART_HOME /usr/lib/dart 

RUN apt-get -y install ca-certificates curl 
ADD globaleda.crt /usr/local/share/ca-certificates/ 
RUN update-ca-certificates 
RUN git config --global http.sslverify false 
RUN apt-get update 
RUN curl -sSL https://get.docker.com/ubuntu/ | sudo sh 
ENV DOCKER_HOST tcp://************* 
ADD .dockercfg/
RUN rm -f /app/init 
ADD init /app/ 
RUN chmod 777 /app/init 

Кий dockerfile является неизмененной версией sameersbn/gitlab-CI: 5.2.0.

Когда я компилирую проект maven (с установкой mvn), он начинает загружать требуемые артефакты, и загрузка зависает, если я снова и снова загружаю загрузку, ему удается полностью загрузить проблему. Мне нужно загрузить все сразу без перерывов (ей удается продолжать причину IM хранения всех загрузок на отображенный томе)

Наблюдения:

-I развертываются бегун контейнер Ci на моей локальной машине вместо сервера и связанное с gitlab Сь проблема сохраняется.

-Если вы заходите внутрь контейнера (с помощью скрипта docker-enter или docker exec container bash) и запускаете mvn install на терминале, он загружает все, что и должно, хотя и загружает его внутри сборки, которую он висит.

-i попытался с помощью Установка MAVEN_OPTS в -Djava.net.preferIPv4Stack = истинна на dockerfile из CI-Runner, я также попытался включить его в сценарий сборки из CI-Runner, чтобы заставить эту переменную:

  • В dockerfile я добавил ENV MAVEN_OPTS -Djava.net.preferIPv4Stack = истинный
  • В сценарии сборки я добавил MAVEN_OPTS = -Djava.net.preferIPv4Stack = истина

-Running in debug mode (-e) or reading the logs the only information i have is :Download Timeout

+0

Кажется, некоторые проблемы разрешения сети/брандмауэра. Попробуйте использовать того же пользователя, что ваш скрипт запущен, и снова проверьте команду 'mvn install' и посмотрите, загрузите ли он то, что нужно. –

+0

Я только что протестировал то, что вы сказали, и оба пользователя - root, так что проблема не проблема = ( –

+0

Была ли это команда запуска docker, которая висела? Мне было весело, но с помощью docker exec. 1. fun with ttys 2. hang/freeze docker exec run under timeout 1. jenkins job -> script ssh для тестирования драйвера -> ssh для системного теста -> bash script -> вызывает docker exec. Флаги Ssh tty должны были использоваться определенным образом, чтобы заставить работу работать 2. Кажется, что существуют различные проблемы, связанные с приложением докеры, например, это особенно важно для моего опыта: https: // github.com/docker/docker/issues/28207 – gaoithe

ответ

0

UPDATE: Maven оленьей кожи АСП союзник виснет, сборка завершена successfully.But второго места Doesnt сообщить gitlab Х говоря, что это сделало свою работу Устпешно из-за ошибки отклика: 500.

>  2015-01-02 18:37:54 +0000 | Submitting build 439 to coordinator...response error: 500 
>  2015-01-02 18:38:02 +0000 | Submitting build 439 to coordinator...response error: 500 
>  2015-01-02 18:38:06 +0000 | Completed build 439, success. 
>  2015-01-02 18:38:06 +0000 | Submitting build 439 to coordinator...response error: 500 
>  2015-01-02 18:38:15 +0000 | Submitting build 439 to coordinator...response error: 500 
>  2015-01-02 18:38:18 +0000 | Completed build 439, success. 
>  2015-01-02 18:38:18 +0000 | Submitting build 439 to coordinator...response error: 500 
>  2015-01-02 18:38:27 +0000 | Submitting build 439 to coordinator...response error: 500 
>  2015-01-02 18:38:30 +0000 | Completed build 439, success. 
>  2015-01-02 18:38:30 +0000 | Submitting build 439 to coordinator...response error: 500 
>  2015-01-02 18:38:39 +0000 | Submitting build 439 to coordinator...response error: 500 
+0

Вы нашли решение? Или обходной путь? – gaoithe

Смежные вопросы