Настройка Docker Swarm на Travis CI: Помощь при попытке добавить рабочий узел
Я пытаюсь настроить Docker в Docker (dind) на Travis CI, потому что я разрабатываю / работаю с роем Docker-кластеров и хотел бы настроить тестовую среду для эмуляции рабочего сайта.
Соответствующая информация
- У меня настроены два док-контейнера:
swarm-manager
& swarm-worker
- Контейнеры могут общаться друг с другом
- Изображение Docker:
docker:18.06-dind
- Содержимое
docker-compose.yml
:
version: '3'
services:
swarm-manager:
image: docker:18.09-dind
container_name: swarm-manager
privileged: true
networks:
- test_network
swarm-worker:
image: docker:18.09-dind
container_name: swarm-worker
privileged: true
networks:
- test_network
networks:
test_network:
Начальная настройка
docker-compose up -d
docker exec -it swarm-manager docker swarm init
export WORKER_TOKEN=$(docker exec -it swarm-manager docker swarm join-token -q worker)
На этом этапе docker-manager
настроен с инициализированным режимом роя и принимает соединения от рабочих узлов, и у меня также есть действительный --token
, например,
echo $WORKER_TOKEN
SWMTKN-1-3fbgb7mpxl7fi8ec6y5fhe9sqa32b4cxls8x1yy6pry0uqk2et-8jdbm37imsxrzqc1aycbekvee
Однако, когда я пытаюсь добавить swarm-worker
с помощью следующей команды, я получаю сообщение об ошибке:
docker exec -it -e WORKER_TOKEN swarm-worker docker swarm join swarm-manager:2377 --token $WORKER_TOKEN
Сообщение об ошибке
Error response from daemon: invalid join token
Следовательно, я знаю, что параметр WORKER_TOKEN
находится в среде swarm-worker
, потому что
docker exec -it -e WORKER_TOKEN swarm-worker sh -c export
выходы
export DIND_COMMIT='37498f009d8bf25fbb6199e8ccd34bed84f2874b'
export DOCKER_CHANNEL='stable'
export DOCKER_VERSION='18.09.6'
export HOME='/root'
export HOSTNAME='d656ad182e06'
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
export PWD='/'
export SHLVL='1'
export TERM='xterm'
export WORKER_TOKEN='SWMTKN-1-3fbgb7mpxl7fi8ec6y5fhe9sqa32b4cxls8x1yy6pry0uqk2et-8jdbm37imsxrzqc1aycbekvee
Я хотел бы успешно добавить swarm-worker
как рабочий узел в рое докеров. Любая помощь, будет принята с благодарностью.