У меня есть 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
Кажется, некоторые проблемы разрешения сети/брандмауэра. Попробуйте использовать того же пользователя, что ваш скрипт запущен, и снова проверьте команду 'mvn install' и посмотрите, загрузите ли он то, что нужно. –
Я только что протестировал то, что вы сказали, и оба пользователя - root, так что проблема не проблема = ( –
Была ли это команда запуска 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