Запускаем в докере, чтобы запускать в докере! http://teamcity.archive.systems
Go to file
2020-09-04 13:52:46 +03:00
.gitignore Первая стабильно работающая композиция c возможностью запуска сервисов на агентах 2019-08-23 20:08:19 +03:00
docker-compose.yml.dist Актуальный компоуз с дамаска 2020-09-04 13:52:46 +03:00
Dockerfile Обновление node.js с 11 на 12 2020-02-21 15:40:25 +03:00
local.yml Первая стабильно работающая композиция c возможностью запуска сервисов на агентах 2019-08-23 20:08:19 +03:00
Pipfile Первая стабильно работающая композиция c возможностью запуска сервисов на агентах 2019-08-23 20:08:19 +03:00
Pipfile.lock Первая стабильно работающая композиция c возможностью запуска сервисов на агентах 2019-08-23 20:08:19 +03:00
prod.yml Отдельные для данных агентов; убрана переменная TZ на сервере 2020-09-04 13:20:26 +03:00
README.md фикс ридми 2020-01-27 15:39:41 +03:00

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).