Jenkins : Docker Pipeline Plugin

Plugin Information

View Docker Pipeline on the plugin site for more information.

Allows to build and use Docker containers from pipelines.

Features

See the user guide for all details.

Open JIRA issues

type key summary assignee reporter priority status resolution created updated due

Can't show details. Ask your admin to whitelist this Jira URL.

View these issues in Jira

Version history

Version 1.19 (August 2, 2019)

As of this release, fingerprints will no longer be automatically generated when using docker.build or image.run in a Pipeline. If you are using the CloudBees Docker Traceability Plugin, which is the only known consumer of these fingerprints, you will need to explicitly call dockerFingerprintFrom and dockerFingerprintRun if you want to maintain the previous behavior.


  • JENKINS-44609 - Docker inspect failing on named multi-stage builds Resolved   JENKINS-44789 - docker 17.05 multistage Dockerfile breaks dockerFingerprintFrom Resolved   JENKINS-57369 - Docker build-args incorrectly rejected and successful build marked failed Resolved  Deprecate the dockerFingerprintFrom and dockerFingerprintRun steps and stop calling them during docker.build and image.run. Fixes various issues with Dockerfile parsing and parsing arguments to docker build
  • JENKINS-46636 - `dir` does not change working directory for contained steps Resolved  Attempt to support the dir step when running on a Docker container created by this plugin for older versions of Docker (17.12 and older)

Version 1.18 (April 2, 2019)

  • JENKINS-48437 - Docker Pipeline Plugin withRegistry and Authorize Plugin fails to get credentialsId Resolved  Allow users with Credentials/UseItem permission (implied by Job/Configure permission) on a Pipeline Job to use credentials which that job has access to in the withDockerRegistry and withDockerServer steps even when Authorize Project Plugin is installed and configured to run builds as a user other than the default Jenkins superuser.
  • JENKINS-46105 - Docker 17.05 ARG in FROM breaks docker inspect Resolved  Extend fix for ARGs in FROM added in version 1.15 to support ARGs with default values.
  • JENKINS-56674 - In case of execute withDockerContainer inside withDockerCotainer env variables is not masked Resolved  Mask environment variables used by steps that use the Launcher API inside of a withDockerContainer step.
  • (PR 153) Update help related to image.pull() to explain what problems might happen if the method is not called.

Version 1.17 (May 18, 2018)

  • JENKINS-51395 - withDockerRegistry([...]) syntax no longer accepted Resolved  The withDockerRegistry step now preferentially takes a “flat” argument list, but continues to support older syntaxes, including the one broken in 1.16.
  • JENKINS-51397 - docker login being called without server-related environment variables Resolved  May solve login issues in certain environments, especially with a custom Docker server endpoint. The non-CLI-based login behavior in 1.15.1 may be restored using the Jenkins startup flag -Dorg.jenkinsci.plugins.docker.commons.credentials.DockerRegistryToken.USE_CUSTOM_LOGIN=true but this suffers from a number of known limitations including lack of guaranteed support for parallel builds on one computer, failure to clean up credentials at the end of a build, incompatibility with the JSON format from some versions of the Docker client, etc.
     

Version 1.16 (May 11, 2018)

  • JENKINS-38018 - withDockerRegistry fails to authenticate with DockerHub Resolved  and allied issues: using CLI-based registry login by default

WARNING: introduced some known regressions  JENKINS-51395 - withDockerRegistry([...]) syntax no longer accepted Resolved  &  JENKINS-51397 - docker login being called without server-related environment variables Resolved

Version 1.15.1 (Feb 13, 2018)

  • JENKINS-49278 - cat command in docker agents not detected correctly Reopened  command in docker agents not detected correctly
  • JENKINS-42152 - Docker Pipeline causes build to fails because of use of --force=yes for tagging Open  do not use (deprecated) --force when tagging images
  • better error message for JENKINS-41316 

Version 1.15 (Jan 30, 2018)

  • JENKINS-41316 Restore entrypoint support (JENKINS-37987), check the command is well executed by entrypoint
  • JENKINS-48502: Added ECS and Kubernetes support in cgroup detection
  • JENKINS-49063: fix cgroup detection on Docker CE
  • JENKINS-46105: fix support for ARG in FROM command
  • JENKINS-33510: add support for exec workdir option
  • JENKINS-47791: Making WithContainerStepTest.death not assume the existence of a pid file.

Version 1.14 (Nov 1, 2017)

  • JENKINS-40484 - Stop passing PATH from agent to container, fixing problems such as withMaven not working within withContainerStep.

Version 1.13 (Sep 11, 2017)

  • JENKINS-44609 No longer fails on multi-stage Dockerfile with FROM .. AS syntax
  • Added OS detection in JUnits so Windows based runs pass
  • Added JenkinsFile for automated CI on the plugin

Version 1.12 (Jun 16, 2017)

  • Label the Docker workspace volume mount shared for SELinux.
  • Stray whitespace in inspect format could cause errors.
  • Empty environment variables in Jenkins settings could cause errors.
  • JENKINS-42322 Increased timeout for client operations from 10s to 3m by default (configurable).

Version 1.11 (May 08, 2017)

  • Print diagnostics explaining why --volumes-from is or is not being used.
  • JENKINS-43222 Fixes to environment used for running docker CLI commands when using inside.

  • JENKINS-43328 Detect container ID when running using --parent-group.

Version 1.10 (Feb 13, 2017)

  • Fixed detection of agents running inside containers under further special conditions.
  • Detect custom Dockerfile when using --file.
  • JENKINS-34276 Allow Image.inside to run with either a local or registry-prefixed name.
  • JENKINS-37719 Recover when dockerd hangs.

Version 1.9.1 (Nov 14, 2016)

  • Name changed to remove word “CloudBees”.

Version 1.9 (Oct 05, 2016)

  • Failure to pass --volumes-from from Image.inside when an agent was run in a container using --volume but no VOLUME declaration.
  • JENKINS-37769 As-yet-undiagnosed issue with stop meant that cleanup from Image.inside was delayed for ten seconds.
  • JENKINS-38018 When withRegistry succeeds, print a message saying where credentials were stored. When credentials are not found, abort rather than silently continuing.
  • JENKINS-37951 withTool was not honored by Image.inside.

Version 1.8 (Sep 07, 2016)

  • JENKINS-37987 Allow Image.inside to work with images like maven which specify an ENTRYPOINT.
  • JENKINS-36332 Allow a command argument to be passed to Image.withRun.
  • Improved detection of containerized Jenkins instances from 1.5.
  • Avoid blocking log output when running docker commands to compute fingerprints.

Version 1.7 (Jul 26, 2016)

Requires a newer Jenkins baseline and Pipeline dependencies.

  • JENKINS-36214 Use a workspace-specific temporary directory to write .container files.
  • JENKINS-34050 Docker.build may now take arbitrary arguments, not merely an alternate base directory.
  • JENKINS-31225 More portable way of determining when commands need to be wrapped in an implicit node block.

Version 1.6 (Jul 01, 2016)

  • Fix error in 1.5 when not run on Linux.

Version 1.5 (Jun 30, 2016)

  • Work correctly out of the box when Jenkins itself is running inside a Docker container. Demo also updated to exercise this mode.
  • JENKINS-33510 Not solved, but at least print a warning to the build log that dir inside Image.inside does not work.
  • JENKINS-33063 Allow a command to be passed to Image.run.
  • Added a Container.port function.

Version 1.4 (Mar 03, 2016)

  • JENKINS-27152 Mount temporary directories now used by several other plugins in addition to the workspace when using Docker.Image.inside.
  • Handle recent deprecation of docker tag --force.

Version 1.3 (Feb 05, 2016)

  • No functional change, just following rename from Workflow to Pipeline.

Version 1.2 (Aug 04 2015)

  • JENKINS-28611 Honor DOCKER_HOST and similar environment variables from the slave machine when running docker exec for docker.inside.

Version 1.1 (Jul 28 2015)

Version 1.0 (Jun 03 2015)

  • (plus) First release