Настройка Docker Swarm на Travis CI - PullRequest
0 голосов
/ 05 июня 2019

Настройка Docker Swarm на Travis CI: Помощь при попытке добавить рабочий узел

Я пытаюсь настроить Docker в Docker (dind) на Travis CI, потому что я разрабатываю / работаю с роем Docker-кластеров и хотел бы настроить тестовую среду для эмуляции рабочего сайта.

Соответствующая информация

  1. У меня настроены два док-контейнера: swarm-manager & swarm-worker
  2. Контейнеры могут общаться друг с другом
  3. Изображение Docker: docker:18.06-dind
  4. Содержимое 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 как рабочий узел в рое докеров. Любая помощь, будет принята с благодарностью.

...