Docker image for Docker Pipeline demo
This image contains a "Docker Pipeline" Job that demonstrates Jenkins Pipeline integration
with Docker via CloudBees Docker Pipeline plugin.
normaldocker run --rm -p 8080:8080 -p 8081:8081 -p 8022:22 --add-host=docker.example.com:127.0.0.1 -ti --privileged jenkinsci/docker-workflow-demo
The "Docker Pipeline" Job simply does the following:
- Gets the Spring Pet Clinic demonstration application code from GitHub.
- Builds the Pet Clinic application in a Docker container.
- Builds a runnable Pet Clinic application Docker image.
- Runs a Pet Clinic app container (from the Pet Clinic application Docker image) + a second maven3 container that runs automated tests against the Pet Clinic app container.
- The 2 containers are linked, allowing the test container to fire requests at the Pet Clinic app container.
The "Docker Pipeline" Job demonstrates how to use the
docker.image to define a DSL
Image object (not to be confused with
build ) that can then be used to perform operations on a Docker image:
Image.inside to run a Docker container and execute commands in it. The build workspace is mounted as the working directory in the container.
Image.run to run a Docker container in detached mode, returning a DSL
Container object that can be later used to stop the container (via
docker.build to build a Docker image from a
Dockerfile , returning a DSL
Image object that can then be used to perform operations on that image (as above).
docker DSL supports some additional capabilities not shown in the "Docker Pipeline" Job:
- Use the
docker.withServer to register endpoints for the Docker registry and host to be used when executing docker commands.
- Use the
Image.pull to pull Docker image layers into the Docker host cache.
- Use the
Image.push to push a Docker image to the associated Docker Registry. See