teamcity-in-docker/README.md

2.8 KiB
Raw Blame History

Teamcity

Запискаем докер, когда запускаем докер! Внутренний ТС. Подробнее в (Confluence)[https://confluence.archive.systems/display/PRO/TeamCity]

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

cp prod.yml docker-compose.yml

Запуск:

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

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

Для нашей версии (3.4) нужно доп. средства:

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

и запускаем. Подробнее тут.

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

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

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

Нельзя использовать _ или - в названии сервисов! Docker Compose DNS issues with Team City Agent

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

Агенты должны делить сеть с хост-машиной, на которой стоит докер-демон, чтобы было возможно обращаться к сервисам по 127.0.0.1. From inside of a Docker container, how do I connect to the localhost of the machine?

При этом сеть host надо указать при сборке (требует версию 3.4) Option network_mode: host in docker compose file not working as expected.