2016-11-27 3 views
1

У меня есть сервер Gitlab работает на контейнере Докер: gitlab dockerGitlab непрерывной интеграции на Докер

На Gitlab есть проект с простой Makefile, который работает pdflatex построить п.п.м. файл.

На контейнере Докер я установил texlive и сделать, я также установил докер бегун, команда:

curl -sSL https://get.docker.com/ | sh 

.gitlab-ci.yml выглядит следующим образом:

.build: 
    script: &build_script 
    - make 

build: 
    stage: test 
    tags: 
    - Documentation Build 
    script: *build 

задание застряв и отображается сообщение:

любая идея?

+0

Рекомендуется запустить ваш GITLAB RUNNER за пределами Docker и разрешить Docker загружать и запускать контейнеры Docker. Похоже, вы сами пытались настроить бегуна? Вы следовали инструкциям в документах? https://docs.gitlab.com/runner/#using-gitlab-runner –

+0

GITLAB CI RUNNER! = GITLAB SERVER. Вы имели в виду сказать, что вы запустили главный сервер Gitlab внутри докера, или бегун CI работает внутри докера? Или что вы не понимаете, что сервер НЕ СОДЕРЖИТ любого бегуна, и вам нужно его настроить? –

+0

Очевидно, что нет! Я запускаю команду curl вне контейнера Docker, содержащего Gitlab, поэтому я сделал это на главной машине. Я читаю сейчас, что очень сложно настроить систему, как я хочу, было бы намного проще с Jenkings ... – mattobob

ответ

1

Верхний комментарий по вашей ссылке это пятно на:

«Gitlab хорошо, но этот контейнер абсолютно чокнутый»

Во-вторых, вы должны gitlab's own advice вы должны не использовать этот контейнер на окнах, когда-либо.

Если вы хотите использовать Gitlab-CI с сервера Gitlab, вы должны установить соответствующий экземпляр сервера Gitlab на соответствующей поддерживаемой Linux VM с помощью Omnibus и не должны пытаться использовать этот контейнер с определенной целью. явно непригодным для: реального способа производства Gitlab.

Gitlab-омнибус содержит:

  1. стойкое (не без гражданства!) Уровень данных работает на Postgres.

  2. сервер чата, в котором находится весь существующий объект, должен быть постоянным журналом вашего командного чата.

  3. не одна, а серия серверных процессов, которые работают вместе, чтобы предоставить вам функциональность сервера gitlab и интерфейс веб-администратора/управления, в дизайне, который не кажется идеальным для меня, чтобы он запускался в процессе производства внутри докера.

  4. интегрированный менеджер сборки CI, который сам является менеджером контейнеров Docker. Экземпляр докеры будет содержать кеш других экземпляров докеров.

, что этот контейнер был построен сам Gitlab никаких признаков вы должны реально использовать его для чего-нибудь, кроме как тест/игрушка или для того, что Gitlab сами на самом деле использовать его для, который, вероятно, чтобы позволить людям раскручивается Gitlab ночью строит, вероятно, через кубернетов.

+0

Хорошо, я крут, спасибо, но я не на окнах, кроме того, что для меня работает неплохо, я люблю использовать докер контейнеры, они универсальны, замечательно, я могу запускать много серверов с разной целью на одной машине. – mattobob

+0

Точка сервера Git должна содержать ваш код и не потерять его. Точка Docker заключается в том, чтобы легко создавать и сбрасывать вещи. Настойчивость не является сильной стороной Докера. Почему бы не создать резервную копию вашего жесткого диска в контейнере Docker? См. Мой вопрос? –

1

Я думаю, вы немного смущены здесь. Судя по этому комментарию:

На контейнере Докера я установил texlive и сделать, я также установил докер бегуна, команду:

локон -ssl https://get.docker.com/ | sh

Кажется, вы установили докер внутри докера и на самом деле не установили никаких бегунов? Это не сработает, если это так. Для этого необходимо выполнить следующие шаги:

  • Разверните новый бегун gitlab. Самый быстрый способ сделать это - развернуть еще один контейнер docker с линеаром gitlab docker image. Вы не можете запустить бегун внутри контейнера докера, в который вы развернули gitlab. Вам нужно будет убедиться, что вы выбрали исполнителя (я предлагаю использовать исполнитель оболочки, чтобы вы начали), а затем вам нужно зарегистрировать бегун. Дополнительная информация о том, как это сделать here. Что здесь не детально, так это то, что если вы используете докеры для gitlab и docker для gitlab-runner, вам нужно будет link the containers или настроить docker network, чтобы они могли общаться друг с другом
  • После того, как вы развернули и зарегистрированный бегун с gitlab, вы увидите его в http (s): // your-gitlab-server/admin/runners - отсюда вам нужно будет назначить его проекту. Вы также можете сделать это как «Shared» бегун, который будет выполнять задания из всех проектов.
  • Наконец, добавьте .gitlab-ci.yml, как вы уже есть, и сборка будет работать должным образом.
+0

Это, вероятно, хороший ответ. Вероятно, это способ решить проблему, которую имел парень. Но я думаю, что было бы еще лучше НЕ запускать Gitlab таким образом, кроме как тестовой системы. –

+0

Согласовано. Я не люблю запускать что-то жизненно важное для докера, хотя, поэтому я сохранил политику из этого :) – jaxxstorm

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