teamcity-in-docker/README.md
2020-01-27 15:39:41 +03:00

2.9 KiB
Raw Permalink Blame History

Teamcity

Внутренний ТС, работающий в докере. Запускаем в докере, чтобы запускать в докере!

Подробнее о сервере, установке ТС, пользователе и правах в Confluence.

Запуск на продакшене

Переименовать в стандартное названия для docker-compose:

cp prod.yml docker-compose.yml

Запуск:

docker-compose build
docker-compose up -d --force-recreate

Запуск на локальной машине в исследовательских целях

Для нашей версии (docker-compose 3.4) нужно доп. средства. Подробнее о подходе с мерджем файлов тут.

Ставим:

Выполняем:

pipenv install
dcao-merge -o docker-compose.yml prod.yml local.yml

Запускаем (как для продакшена).

Разные нюансы compose-файла

Самое главное, что:

  1. прокидываем сокет демона ХОСТА в контеры агентов (docker in docker)
  2. монтируем агентские рабочие папки из агентов на хост, чтобы демон (см. 1) мог увидеть файлы по относительным путям

Нельзя использовать _ или - в названии сервисов!

Нужно примаунтить директории, в которые чекаутится проект, чтобы избежать проблемы отсутствия файлов в первом докере (чтобы можно было запускать контейнеры внутри!). Первая ссылка - описание проблемы, вторая - солюшн.

Агенты должны делить сеть с хост-машиной, на которой стоит докер-демон, чтобы было возможно обращаться к сервисам по 127.0.0.1.

При этом сеть host надо указать при сборке (требует версию 3.4).