Compare commits
7
Commits
v1.0
..
b29e37bcd6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b29e37bcd6 | ||
|
|
a2e211417f | ||
|
|
6e3e867334 | ||
|
|
1823cd07bf | ||
|
|
f477f3c051 | ||
|
|
ffff9ed1d8 | ||
|
|
e21c3dfd6c |
No files matched your search
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
FROM jetbrains/teamcity-agent
|
FROM jetbrains/teamcity-agent
|
||||||
|
|
||||||
RUN curl -sL https://deb.nodesource.com/setup_11.x | bash - \
|
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - \
|
||||||
&& apt-get install -y nodejs build-essential nano
|
&& apt-get install -y nodejs build-essential nano
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
# Teamcity
|
# Teamcity
|
||||||
|
Внутренний ТС, работающий в докере. _Запускаем в докере, чтобы запускать в докере!_
|
||||||
|
|
||||||
Запискаем докер, когда запускаем докер!
|
Подробнее о сервере, установке ТС, пользователе и правах в [Confluence](https://confluence.archive.systems/display/PRO/TeamCity).
|
||||||
Внутренний ТС. Подробнее в (Confluence)[https://confluence.archive.systems/display/PRO/TeamCity]
|
|
||||||
|
|
||||||
|
## Запуск на продакшене
|
||||||
Переименовать в стандартное названия для docker-compose:
|
Переименовать в стандартное названия для docker-compose:
|
||||||
```bash
|
```bash
|
||||||
cp prod.yml docker-compose.yml
|
cp prod.yml docker-compose.yml
|
||||||
@@ -15,27 +16,32 @@ docker-compose up -d --force-recreate
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Запуск на локальной машине в исследовательских целях
|
## Запуск на локальной машине в исследовательских целях
|
||||||
Для нашей версии (3.4) нужно доп. средства:
|
Для нашей версии (docker-compose 3.4) нужно доп. средства. Подробнее о подходе с мерджем файлов [тут](https://stackoverflow.com/a/55033027).
|
||||||
|
|
||||||
|
Ставим:
|
||||||
* [pipenv](https://docs.pipenv.org/en/latest/)
|
* [pipenv](https://docs.pipenv.org/en/latest/)
|
||||||
* [docker-compose addons](https://github.com/dnephin/compose-addons#docker-compose-addons)
|
* [docker-compose addons](https://github.com/dnephin/compose-addons#docker-compose-addons)
|
||||||
|
|
||||||
|
Выполняем:
|
||||||
```bash
|
```bash
|
||||||
pipenv install
|
pipenv install
|
||||||
dcao-merge -o docker-compose.yml prod.yml local.yml
|
dcao-merge -o docker-compose.yml prod.yml local.yml
|
||||||
```
|
```
|
||||||
и запускаем. Подробнее [тут](https://stackoverflow.com/a/55033027).
|
|
||||||
|
Запускаем (как для продакшена).
|
||||||
|
|
||||||
## Разные нюансы compose-файла
|
## Разные нюансы compose-файла
|
||||||
Самое главное, что:
|
Самое главное, что:
|
||||||
1. прокидываем сокет демона ХОСТА в контеры агентов (docker in docker)
|
1. прокидываем сокет демона ХОСТА в контеры агентов (docker in docker)
|
||||||
2. монтируем агентские рабочие папки из агентов на хост, чтобы демон (см. 1) мог увидеть файлы по относительным путям
|
2. монтируем агентские рабочие папки из агентов на хост, чтобы демон (см. 1) мог увидеть файлы по относительным путям
|
||||||
|
|
||||||
Нельзя использовать ```_``` или ```-``` в названии сервисов! [Docker Compose DNS issues with Team City Agent](https://stackoverflow.com/q/46013774)
|
[Нельзя использовать](https://stackoverflow.com/q/46013774) ```_``` или ```-``` в названии сервисов!
|
||||||
|
|
||||||
Нужно примаунтить директории, в которые чекаутится проект, чтобы избежать проблемы отсутствия файлов в первом докере (чтобы можно было запускать контейнеры внутри!). Первая ссылка - описание проблемы, вторая - солюшн.
|
Нужно примаунтить директории, в которые чекаутится проект, чтобы избежать проблемы отсутствия файлов в первом докере (чтобы можно было запускать контейнеры внутри!). Первая ссылка - описание проблемы, вторая - солюшн.
|
||||||
* [Using docker compose inside a running container](https://github.com/docker/compose/issues/3918#issuecomment-483969527)
|
* [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)
|
* [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)
|
обращаться к сервисам [по 127.0.0.1](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).
|
При этом сеть host [надо указать при сборке](https://forums.docker.com/t/option-network-mode-host-in-docker-compose-file-not-working-as-expected/51682) (требует версию 3.4).
|
||||||
@@ -6,6 +6,8 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- '/var/data/teamcity/server:/data/teamcity_server/datadir'
|
- '/var/data/teamcity/server:/data/teamcity_server/datadir'
|
||||||
- '/var/log/teamcity/server:/opt/teamcity/logs'
|
- '/var/log/teamcity/server:/opt/teamcity/logs'
|
||||||
|
environment:
|
||||||
|
TZ: Europe/Moscow
|
||||||
ports:
|
ports:
|
||||||
- '80:8111'
|
- '80:8111'
|
||||||
restart: always
|
restart: always
|
||||||
@@ -19,11 +21,12 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- '/var/data/teamcity/agent-white:/data/teamcity_agent/conf'
|
- '/var/data/teamcity/agent-white:/data/teamcity_agent/conf'
|
||||||
- '/var/run/docker.sock:/var/run/docker.sock'
|
- '/var/run/docker.sock:/var/run/docker.sock'
|
||||||
- '/opt/buildagent/work:/opt/buildagent/work'
|
- '/opt/buildagent/white/work:/opt/buildagent/work'
|
||||||
- '/opt/buildagent/temp:/opt/buildagent/temp'
|
- '/opt/buildagent/white/temp:/opt/buildagent/temp'
|
||||||
environment:
|
environment:
|
||||||
SERVER_URL: http://127.0.0.1:80
|
SERVER_URL: http://127.0.0.1:80
|
||||||
AGENT_NAME: 'White'
|
AGENT_NAME: 'White'
|
||||||
|
DOCKER_WORK_DIR: /opt/buildagent/white/work
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- server
|
- server
|
||||||
@@ -36,11 +39,12 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- '/var/data/teamcity/agent-black:/data/teamcity_agent/conf'
|
- '/var/data/teamcity/agent-black:/data/teamcity_agent/conf'
|
||||||
- '/var/run/docker.sock:/var/run/docker.sock'
|
- '/var/run/docker.sock:/var/run/docker.sock'
|
||||||
- '/opt/buildagent/work:/opt/buildagent/work'
|
- '/opt/buildagent/black/work:/opt/buildagent/work'
|
||||||
- '/opt/buildagent/temp:/opt/buildagent/temp'
|
- '/opt/buildagent/black/temp:/opt/buildagent/temp'
|
||||||
environment:
|
environment:
|
||||||
SERVER_URL: http://127.0.0.1:80
|
SERVER_URL: http://127.0.0.1:80
|
||||||
AGENT_NAME: 'Black'
|
AGENT_NAME: 'Black'
|
||||||
|
DOCKER_WORK_DIR: /opt/buildagent/black/work
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- server
|
- server
|
||||||
|
|||||||
Reference in new issue
Block a user