Customize a Docker Image to use it on Palace

Issue

  • We need some tools installed on the Docker image that we use for agents.
  • We have some scripts that we execute on every build.

Environment

Resolution

You want to have a new Palace template with some additional software installed. In order to do that, you need to create a new Docker image. Your starting point can be any Dockerfile extending FROM any of the Docker images shown below:

  • openjdk
  • cloudbees/java-with-docker-client
  • maven:3.3-jdk-8

If you are using a Palace Template that you want to use as base, you can find the Docker image used on its configure page, under the image field

dockerAgentsDescription.png

Once you have chosen the base image (e.g. cloudbees/java-with-docker-client ) you have to create a Dockerfile for it. Please, review the sample below where we install subversion, curl ,and htop

FROM cloudbees/java-with-docker-client:latest

USER root
RUN apt-get update  -y
RUN apt-get install -y subversion curl htop

When you have the Dockerfile you must push the image to your Docker Registry. Once that you have done it, you could use it on a Palace template.

Private Registry

To use a private registry in a Palace template, review Using private Docker registries.

Amazon ECR

In you use Amazon ECR as registry, ecr-update is needed because it requires credentials rotation, so this operation sets it up on workers.

Then you use the regular docker tag prefixed by the name of the ecr registry you wish to use (e.g. aws_account_id.dkr.ecr.region.amazonaws.com/my-org/my-image:my-version); and you must reference docker.tar.gz containing credentials as documented on Using private Docker registries in your docker template.

References

For more details on how to configure a Palace template, please review the links below.

CloudBees Jenkins Enterprise CD as Services

Tested products/plugins version

The latest update of this article was tested with:

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.