docker-java эквивалент "docker service create --with-registry-auth" - PullRequest
0 голосов
/ 21 июня 2019

Используя https://github.com/docker-java/docker-java и ищите способ добавить опцию --with-registry-auth из https://docs.docker.com/v17.12/engine/reference/commandline/service_create/#options

val createCmd = dockerClient.createServiceCmd(
                ServiceSpec()
                        .withName("name")

                        .withTaskTemplate(TaskSpec()
                                .withContainerSpec(ContainerSpec()
                                        .withEnv(envs)
                                        .withImage("image")
                                        .withMounts(mounts)
                                )
                                .withNetworks(networks)
                                .withPlacement(ServicePlacement()
                                        .withConstraints(constraints))
                        )
        )

Чтобы уточнить это больше:

Я ищу способ docker-java для выполнения этой команды (это работает!):

docker service create --with-registry-auth --constraint 'node.labels.mynodeid==7' myprivateregistry.foo:5000/imagename:latest

Удаление --with-registry-auth, как это

docker service create --constraint 'node.labels.mynodeid==7' myprivateregistry.foo:5000/imagename:latest

вызовет эту ошибку: No such image: myprivateregistry.foo:5000/imagename:latest, потому что учетные данные, которые действительны, кстати, не передаются узлу.

1 Ответ

0 голосов
/ 21 июня 2019

Укажите данные аутентификации реестра в самом объекте dockerClient в вашем коде.

Проверьте это out.

Если это не сработало.Сначала проверьте, правильны ли у вас данные аутентификации реестра, и вручную попытайтесь получить образ докера, используя docker cli.

Поместите конфигурацию реестра в файл .docker/config.json и попробуйте извлечь образ докера.А затем отследить проблемы.

...