Секреты Docker не работают, когда пароль содержит специальные символы - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь запустить jenkins swarm agent, используя предоставленный docker-compose здесь .

Проблема в том, что я использую служебную учетную запись, предоставленную моей командой администраторов, для аутентификации на мастере jenkins ипароль для учетной записи службы содержит специальные символы \ (обратная косая черта) и / (прямая косая черта).Пример:

abcdefghifjd12 \ ab /

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

#use password as it is in double quotes
echo "abcdefghifjd12\ab/" | docker secret create jenkins-user -

#use backslash to escape backslash
echo "abcdefghifjd12\\ab/" | docker secret create jenkins-user -

#use single quotes
echo 'abcdefghifjd12\ab/' | docker secret create jenkins-user -

Ни один не работал.Как решить эту проблему?

Сервер:

Версия: 17.06.2-ee-6

Версия API: 1.30 (минимальная версия 1.12)

Версия Go: go1.8.3

Git commit: e75fdb8

Построен: Пн 27 ноября 22:44:25 2017

OS / Arch: linux / amd64

Экспериментальный: ложь

1 Ответ

0 голосов
/ 12 октября 2018

С обновленной версией Docker я смог сделать то же самое.

На SWARM я создаю секрет на manager-1:

    [manager1] (local) root@192.168.0.41 ~
    $ echo "abcdefghifjd12\ab/" | docker secret create jenkins-user -
    jxykdlqklpo5ml81c4bfa9a4o


    [manager1] (local) root@192.168.0.41 ~
    $ docker service create --secret jenkins-user alpine sleep 1d
    sgmrof1cwwubmhz1qqibu4aof
    overall progress: 1 out of 1 tasks
    1/1: running
    verify: Service converged
    [manager1] (local) root@192.168.0.41 ~
    $ docker service ls
    ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
    sgmrof1cwwub        wizardly_boyd       replicated          1/1                 alpine:latest
    [manager1] (local) root@192.168.0.41 ~


    [manager2] (local) root@192.168.0.43 ~
    docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    f4552c4718c5        alpine:latest       "sleep 1d"          2 minutes ago       Up 2 minutes                wizardly_boyd.1.4gb4nwgiqagfyn10vuvt9pb4v
    [manager2] (local) root@192.168.0.43 ~
    $ docker exec -it f45 sh
    / # cd /run
    /run # cd secrets/
    /run/secrets # ls
    jenkins-user
    /run/secrets # cat jenkins-user
    abcdefghifjd12\ab/

Информация о версии Docker:

    $ docker version
    Client:
     Version:      18.03.1-ce
     API version:  1.37
     Go version:   go1.9.2
     Git commit:   9ee9f40
     Built:        Thu Apr 26 07:12:25 2018
     OS/Arch:      linux/amd64
     Experimental: false
     Orchestrator: swarm

    Server:
     Engine:
      Version:      18.03.1-ce
      API version:  1.37 (minimum version 1.12)
      Go version:   go1.9.5
      Git commit:   9ee9f40
      Built:        Thu Apr 26 07:23:03 2018
      OS/Arch:      linux/amd64
      Experimental: true
    [manager1] (local) root@192.168.0.41 ~
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...