Я настроил следующий файл docker-compose для запуска локального кластера teamcity:
version: '3.1'
services:
teamcity:
image: jetbrains/teamcity-server:2017.1.2
volumes:
- teamcity-server-datadir:/data/teamcity_server/datadir
- teamcity-server-logs:/opt/teamcity/logs
ports:
- 8111:8111
teamcity-agent:
image: jetbrains/teamcity-agent:2017.1.2
environment:
SERVER_URL: http://teamcity:8111
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- teamcity
volumes:
teamcity-server-datadir:
teamcity-server-logs:
Если я создаю докер, контейнеры запускаются нормально, но не подключаются к teamcity из браузера. Когда я смотрю журналы, я нахожу:
teamcity-agent_1 | [2019-04-02 07:56:24,623] WARN - buildServer.AGENT.registration - Failed to obtain server supported protocols via URL http://teamcity:8111/app/agents/protocols: TeamCity Server is starting. Will try later.
teamcity-agent_1 | [2019-04-02 07:56:24,623] WARN - buildServer.AGENT.registration - Error registering on the server via URL http://teamcity:8111. Will continue repeating connection attempts. Details: server is in a maintenance mode
Я проверил несколько сообщений SO, но, похоже, ничего не решает, URL-адрес отображается правильно. Я также добавил depend_on в агент, но это все равно не помогло бы, если у сервера возникли проблемы с получением URL-адреса.
Есть идеи?
Спасибо @Mihai, ваш комментарий о том, что он работает, заставил меня понять, что не так, он был доступен через localhost: 8111, но не на город команды:8111, я только что видел вывод журнала, и он ввел меня в заблуждение, я думал, что запись DNS добавлена по умолчанию, я добавил ее вручную в etc/hosts. Весело, как каждый раз, когда я что-то спрашиваю в SO, это всегда что-то подобное;)


Похоже, ваш агент teamcity запускается перед сервером. Вот мой docker-compose, у меня работает:
version: "3"
services:
teamcity-server:
container_name: teamcity-server
image: jetbrains/teamcity-server:2018.2.2
volumes:
- ./teamcity-server/data:/data/teamcity_server/datadir
- ./teamcity-server/logs:/opt/teamcity/logs
ports:
- 8111:8111
teamcity-agent01:
container_name: teamcity-agent01
image: jetbrains/teamcity-agent:2018.2.2
environment:
- SERVER_URL=http://teamcity-server:8111
- AGENT_NAME=teamcity-agent01
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
reservations:
cpus: '0.5'
memory: 256M
Я запускал именно то, что вы запускали, и это работает для меня. Я вижу предупреждения, но, тем не менее, это работает. Вы также можете попробовать сначала запустить "teamcity" и дать ему несколько минут, а затем запустить остальные.