Custom environments
In addition to the Seqera-provided container template images, you can provide your own custom container environments by augmenting the Seqera-provided images with a list of Conda packages or by providing your own base container template image.
Data Studios uses the Wave service to build custom container template images.
Conda packages
Prerequisites
- Wave must be configured. For more information, see Wave containers.
To augment Seqera-provided images, Enterprise deployments must either allow access to the public Wave server, or self-host their own Wave server.
Conda package syntax
When adding a new data studio session, you can customize its configuration to install a list of Conda packages to the template image. The supported schema is identical to that used by the Conda environment.yml
file. For more information on the Conda environment file, see Creating an environment file manually.
name: example-env
channels:
- defaults
- conda-forge
dependencies:
- python=3.7
- numpy
- pandas
- scikit-learn
- pip:
- matplotlib
- seaborn
- jupyter
To create a data studio with custom Conda packages, see Add a data studio.
Custom container template image
For advanced use cases, you can build your own container template image.
Public container registries are supported by default. Amazon Elastic Container Registry (ECR) is the only supported private container registry.
Prerequisites
- Access to a container image repository, either a public container registry or a private Amazon ECR repository
- A container template image
Dockerfile configuration
For your custom template container image, you must use a Seqera-provided base image and include several additional build steps for compatibility with Data Studios.
To create a data studio with a custom template image, see Add a data studio.
Ports
The container must use the value of the CONNECT_TOOL_PORT
environment variable as the listening port for any interactive software you include in your custom container.
Signals
Upon termination, the container's main process must handle the SIGTERM
signal and perform any necessary cleanup. After a 30-second grace period, the container receives the SIGKILL
signal.
Minimal Dockerfile
The minimal Dockerfile includes directives to accomplish the following:
- Pull a Seqera-provided base image with prerequisite binaries
- Copy the
connect
binary into the build - Set the container entry point
Customize the following Dockerfile to include any additional software that you require:
# Seqera base image
FROM public.cr.seqera.io/platform/connect-client:0.7 AS connect
# 1. Add connect binary
COPY /usr/bin/connect-client /usr/bin/connect-client
# 2. Install connect dependencies
RUN /usr/bin/connect-client --install
# 3. Configure connect as the entrypoint
ENTRYPOINT ["/usr/bin/connect-client", "--entrypoint"]
For example, to run a basic Python-based HTTP server, build a container from the following Dockerfile. When a data studio runs the custom template environment, the value for the CONNECT_TOOL_PORT
environment variable is provided dynamically.
FROM public.cr.seqera.io/platform/connect-client:0.7 AS connect
FROM ubuntu:20.04
RUN apt-get update --yes && apt-get install --yes --no-install-recommends python3
COPY /usr/bin/connect-client /usr/bin/connect-client
RUN /usr/bin/connect-client --install
ENTRYPOINT ["/usr/bin/connect-client", "--entrypoint"]
CMD ["/usr/bin/bash", "-c", "python3 -m http.server $CONNECT_TOOL_PORT"]
Inspect container augmentation build status
You can inspect the progress of a custom container template image build, including any errors if the build fails. A link to the Wave service container build report is always available for builds.
If the custom container template image build fails, the data studio session has the build-failed status. The details about build failures are available when inspecting the session details in the Error report tab.
To inspect the status of an ongoing build, or a successful or failed build, complete the following steps:
- Select the Data Studios tab in Seqera Platform.
- From the list of data studio sessions, select the name of the session with building or build-failed status that you want to inspect, and then select View.
- In the Details tab, scroll to Build reports and select Summary to open the Wave service container build report for your build.
- Optional: If the build failed, select the Error report tab to view the errors associated with the build failure.