Дженкинс сервис в Docker Swarm остается на 0/1 реплики

Я пытаюсь запустить отказоустойчивый Jenkins в Docker Swarm с помощью следующей команды:

docker service create --replicas 1 --name jenkins -p 8080:8080 -p 50000:50000 --mount src=/home/ubuntu/jenkins_home,dst=/var/jenkins_home jenkins:alpine

Но, проверяя состояние службы и работающие контейнеры, я вижу, что реплики остаются в 0.

ubuntu@ip-172-30-3-81:~$ docker service create --replicas 1 --name jenkins -p 8080:8080 -p 50000:50000 --mount src=/home/ubuntu/jenkins_home,dst=/var/jenkins_home jenkins:alpine
14kwt6xoxorn62irnv9y2wm3r
ubuntu@ip-172-30-3-81:~$ docker service ls
ID            NAME        REPLICAS  IMAGE           COMMAND
14kwt6xoxorn  jenkins     0/1       jenkins:alpine  
87ovyhkparou  helloworld  1/1       alpine          ping docker.com
ubuntu@ip-172-30-3-81:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
739f8180c989        alpine:latest       "ping docker.com"        21 minutes ago      Up 21 minutes                                     helloworld.1.4rz08cygb7whjmzm3922h0bfb

Я попытался запустить Jenkins в контейнере (без роя), и он отлично работает, а также отлично работает пример службы Swarm из учебника докера.

Что мешает запуску службы Jenkins?

1 ответ

Решение

Проблема была с параметрами, переданными параметру --mount.

Я пытался передать исходный код как каталог хоста, когда я должен был передавать том докера в соответствии с документацией роя докера. Чтобы исправить проблему, я сделал следующее.

docker volume create --name jenkins_home 

docker service create --replicas 1 --name jenkins -p 8080:8080 -p 50000:50000 --mount source=jenkins_home,dst=/var/jenkins_home jenkins:alpine

Как примечание, я думаю, что для докера было бы полезно показать сообщение об ошибке, когда источник монтирования не может быть найден.

Другие вопросы по тегам