Подтвердить что ты не робот

Используя докер-плагин на jenkins -

Я пытаюсь использовать плагин docker на Jenkins для запуска экземпляра существующего контейнера. Докер версии 1.6.0, сборка 4749651

Я выбрал "create container" Ввел идентификатор изображения для имени изображения и попробовал хост http://172.16.42.43:4243, а также попробовал пустый хост. Я продолжаю получать эту ошибку:

ERROR: Build step failed with exception
java.lang.NullPointerException: uri was not specified
    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:204)
    at com.github.dockerjava.core.DockerClientConfig$DockerClientConfigBuilder.withUri(DockerClientConfig.java:406)
    at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl.createDockerClient(DockerBuilder.java:123)
    at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl.getDockerClient(DockerBuilder.java:201)
    at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder.perform(DockerBuilder.java:71)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
    at hudson.model.Build$BuildExecution.build(Build.java:205)
    at hudson.model.Build$BuildExecution.doRun(Build.java:162)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537)
    at hudson.model.Run.execute(Run.java:1744)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:374)
Build step 'Execute Docker container' marked build as failure

Может кто-нибудь сказать мне, как это исправить? Кроме того, если кто-то использовал этот плагин раньше, сообщите мне, если это когда-либо срабатывало.

Также попробовал "Execute docker container" → запустить контейнеры с указанным идентификатором контейнера, что привело к той же ошибке.

Другой подход: Я пытался использовать оболочку оболочки Execute, и я получаю эту ошибку:

+ docker start d023eec1ff34
Post http:///var/run/docker.sock/v1.18/containers/d023eec1ff34/start: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
time="2015-05-05T10:26:34-07:00" level=fatal msg="Error: failed to start one or more containers"

Если я просто перейду на терминал, переключитесь на пользователя jenkins и запустите команду запуска docker, он отлично работает. Если кто-то знает, как это исправить, это тоже здорово.

4b9b3361

Ответ 1

Предполагая, что Docker работает на том же компьютере, убедитесь, что вы запускаете Docker с помощью:

-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock

Затем перейдите в Управление Jenkins > Конфигурация > Конфигурация системы, затем прокрутите вниз до Docker Builder, а на сервере Docker REST введите http://localhost:4243

Отредактировано: Я изначально сказал, что Docker прослушивает 0.0.0.0, который привязывается ко всем IP-адресам и может разрешать подключения снаружи, если ваш брандмауэр пропускает трафик. Поэтому я обновил его, чтобы вместо этого привязать к loopback-адресу. Кроме того, в текущей версии документации рекомендуется использовать другой порт, но поскольку вы укажете порт вручную, любой порт будет работать.

Ответ 2

Вам нужно предоставить права пользователей Jenkins на использование докеров, купить их в группе докеров, запустить

sudo usermod -a -G docker jenkins