Используя 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
, потому что учетные данные, которые действительны, кстати, не передаются узлу.