Customization of base images

Warning

This requires knowledge of Docker concepts and skills in creating custom Dockerfiles.

When building the base image with

./bin/dssadmin build-base-image --type container-exec

a default base image is created with support for R and a wide range of Python versions.

Some options may be configured.

Setting a proxy

You can set the proxy to use to build with --http-proxy and --no-proxy to set the http_proxy and no_proxy environment variables.

Adding system packages

There are cases where you would want to install additional system packages, generally because they are required by your code environments.

For that, add --system-packages package1,package2,package3

Add a Dockerfile fragment

You may want to add custom Dockerfile commands. For that, use --dockerfile-prepend PATH_TO_FILE or --dockerfile-append PATH_TO_FILE.

The prepended Dockerfile is added just after the FROM. The appended Dockerfile is added at the very end of the Dockerfile.

To add a file to the build context, to make the file available to use in Dockerfile commands added via fragment, use --copy-to-buildenv absolute/path/file.name file.name.

Completely custom Dockerfile

For cases not covered, the generic process would be:

  • Build a base image with the regular DSS mechanisms.

  • Write a custom Dockerfile that starts from the built base image, and add the required package.

  • Build this custom Dockerfile, optionally outputing a custom tag.

  • Is using a custom tag, enter this custom tag in the DSS image build configuration.

Warning

After each upgrade of DSS, you must rebuild all base images, including custom ones.