Docker Images#

All docker images can be pulled from docker hub’s elyra organization and their docker files can be found in the github repository in the appropriate directory of etc/docker.

Local images can also be built via make docker-images.

The following sections describe the docker images used within Kubernetes and Docker Swarm environments.

elyra/enterprise-gateway#

The primary image for Kubernetes and Docker Swarm support, elyra/enterprise-gateway contains the Enterprise Gateway server software and default kernel specifications. For Kubernetes it is deployed using the helm chart. For Docker Swarm, deployment can be accomplished using docker-componse.yml.

We recommend that a persistent/mounted volume be used so that the kernel specifications can be accessed outside the container since we’ve found those to require post-deployment modifications from time to time.

elyra/kernel-py#

Image elyra/kernel-py contains the IPython kernel. It is currently built on the jupyter/scipy-notebook image with additional support necessary for remote operation.

elyra/kernel-spark-py#

Image elyra/kernel-spark-py is built on elyra/kernel-py and includes the Spark 2.4 distribution for use in Kubernetes clusters. Please note that the ability to use the kernel within Spark within a Docker Swarm configuration probably won’t yield the expected results.

elyra/kernel-tf-py#

Image elyra/kernel-tf-py contains the IPython kernel. It is currently built on the jupyter/tensorflow-notebook image with additional support necessary for remote operation.

elyra/kernel-scala#

Image elyra/kernel-scala contains the Scala (Apache Toree) kernel and is built on elyra/spark which is, itself, built using the scripts provided by the Spark 2.4 distribution for use in Kubernetes clusters. As a result, the ability to use the kernel within Spark within a Docker Swarm configuration probably won’t yield the expected results.

Since Apache Toree is currently tied to Spark, creation of a vanilla mode Scala kernel is not high on our current set of priorities.

elyra/kernel-r#

Image elyra/kernel-r contains the IRKernel and is currently built on the jupyter/r-notebook image.

elyra/kernel-spark-r#

Image elyra/kernel-spark-r also contains the IRKernel but is built on elyra/kernel-r and includes the Spark 2.4 distribution for use in Kubernetes clusters.

Ancillary Docker Images#

The project produces two docker images to make testing easier: elyra/demo-base and elyra/enterprise-gateway-demo.

elyra/demo-base#

The elyra/demo-base image is considered the base image upon which elyra/enterprise-gateway-demo is built. It consists of a Hadoop YARN installation that includes Spark, Java, miniconda, and various kernel installations.

The primary use of this image is to quickly build elyra/enterprise-gateway images for testing and development purposes. To build a local image, run make demo-base.

This image can be used to start a separate Hadoop YARN cluster that, when combined with another instance of elyra/enterprise-gateway can better demonstrate remote kernel functionality.

elyra/enterprise-gateway-demo#

Built on elyra/demo-base, elyra/enterprise-gateway-demo also includes the various example kernel specifications contained in the repository.

By default, this container will start with enterprise gateway running as a service user named jovyan. This user is enabled for sudo so that it can emulate other users where necessary. Other users included in this image are elyra, bob and alice (names commonly used in security-based examples).

We plan on producing one image per release to the enterprise-gateway-demo docker repo where the image’s tag reflects the corresponding release.

To build a local image, run make enterprise-gateway-demo. Because this is a development build, the tag for this image will not reflect the value of the VERSION variable in the root Makefile but will be ‘dev’.