# Teamcity Запискаем докер, когда запускаем докер! Внутренний ТС. Подробнее в (Confluence)[https://confluence.archive.systems/display/PRO/TeamCity] Переименовать в стандартное названия для docker-compose: ```bash cp prod.yml docker-compose.yml ``` Запуск: ```bash docker-compose build docker-compose up -d --force-recreate ``` ## Запуск на локальной машине в исследовательских целях Для нашей версии (3.4) нужно доп. средства: * [pipenv](https://docs.pipenv.org/en/latest/) * [docker-compose addons](https://github.com/dnephin/compose-addons#docker-compose-addons) ```bash pipenv install dcao-merge -o docker-compose.yml prod.yml local.yml ``` и запускаем. Подробнее [тут](https://stackoverflow.com/a/55033027). ## Разные нюансы compose-файла Самое главное, что: 1. прокидываем сокет демона ХОСТА в контеры агентов (docker in docker) 2. монтируем агентские рабочие папки из агентов на хост, чтобы демон (см. 1) мог увидеть файлы по относительным путям Нельзя использовать ```_``` или ```-``` в названии сервисов! [Docker Compose DNS issues with Team City Agent](https://stackoverflow.com/q/46013774) Нужно примаунтить директории, в которые чекаутится проект, чтобы избежать проблемы отсутствия файлов в первом докере (чтобы можно было запускать контейнеры внутри!). Первая ссылка - описание проблемы, вторая - солюшн. * [Using docker compose inside a running container](https://github.com/docker/compose/issues/3918#issuecomment-483969527) * [Unable to start any build step with Docker Wrapper on an agent from official docker image](https://youtrack.jetbrains.com/issue/TW-52017?_ga=2.31155327.1161243431.1566480946-540401972.1563195305) Агенты должны делить сеть с хост-машиной, на которой стоит докер-демон, чтобы было возможно обращаться к сервисам по 127.0.0.1. [From inside of a Docker container, how do I connect to the localhost of the machine?](https://stackoverflow.com/a/24326540) При этом сеть host надо указать при сборке (требует версию 3.4) [Option network_mode: host in docker compose file not working as expected](https://forums.docker.com/t/option-network-mode-host-in-docker-compose-file-not-working-as-expected/51682).