Skip to content
Open
21 changes: 16 additions & 5 deletions platform-cloud/docs/studios/custom-envs.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "Custom environments"
description: "Custom environments for Studios"
date created: "2024-10-01"
last updated: "2025-09-30"
last updated: "2026-01-29"
tags: [environments, custom, studio, studio]
---

Expand Down Expand Up @@ -48,7 +48,11 @@ Public container registries are supported by default. Amazon Elastic Container R

### Dockerfile configuration {#dockerfile}

For your custom container image, you must use a Seqera-provided base image and include several additional build steps for compatibility with Studios. To create a Studio with a custom image, see [Add a Studio][add-s].
For your custom container image, you must use a Seqera-provided base image and include several additional build steps for compatibility with Studios. To create a Studio with a custom image, see [Add a Studio][add-s]. Custom images must include an `io.seqera.connect.version` label specifying the `connect-client` version used. Platform uses this label to determine available functionality when configuring and launching the Studio.

:::note
Studios will start without this label, but certain features (such as SSH connectivity) will be unavailable.
:::

#### Ports

Expand All @@ -63,6 +67,7 @@ Upon termination, the container's main process must handle the `SIGTERM` signal
The minimal Dockerfile includes directives to accomplish the following:

- Pull a Seqera-provided base image with prerequisite binaries.
- Set an image label indicating the version used.
- Copy the `connect` binary into the build.
- Set the container entry point.

Expand All @@ -77,13 +82,17 @@ ARG CONNECT_CLIENT_VERSION="0.8"
FROM public.cr.seqera.io/platform/connect-client:${CONNECT_CLIENT_VERSION} AS connect

# highlight-start
# 1. Add connect binary
# 1. Add connect version label to image metadata
ARG CONNECT_CLIENT_VERSION
LABEL io.seqera.connect.version="${CONNECT_CLIENT_VERSION}"

# 2. Add connect binary
COPY --from=connect /usr/bin/connect-client /usr/bin/connect-client

# 2. Install connect dependencies
# 3. Install connect dependencies
RUN /usr/bin/connect-client --install

# 3. Configure connect as the entrypoint
# 4. Configure connect as the entrypoint
ENTRYPOINT ["/usr/bin/connect-client", "--entrypoint"]
# highlight-end
```
Expand All @@ -102,6 +111,8 @@ FROM ubuntu:20.04
RUN apt-get update --yes && apt-get install --yes --no-install-recommends python3

# highlight-start
ARG CONNECT_CLIENT_VERSION
LABEL io.seqera.connect.version="${CONNECT_CLIENT_VERSION}"
COPY --from=connect /usr/bin/connect-client /usr/bin/connect-client
RUN /usr/bin/connect-client --install
ENTRYPOINT ["/usr/bin/connect-client", "--entrypoint"]
Expand Down
25 changes: 18 additions & 7 deletions platform-enterprise_docs/studios/custom-envs.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "Custom environments"
description: "Custom environments for Studios"
date created: "2024-10-01"
last updated: "2025-09-30"
last updated: "2026-01-29"
tags: [environments, custom, studio, studio]
---

Expand All @@ -13,7 +13,7 @@ In addition to the Seqera-provided container images, you can provide your own cu
:::info[**Prerequisites**]

- Wave must be configured. For more information, see [Wave containers][wave].
- To augment Seqera-provided images, Enterprise deployments must either allow access to the public Wave server, or self-host their own Wave server.
- The workspace Admin needs to set a target repository per workspace, in **Settings > Studios > Container repository**. If no repository configuration is specified, the build will fail. Each workspace must have credentials available to push to the specified repository.
:::

### Conda package syntax {#conda-package-syntax}
Expand Down Expand Up @@ -48,7 +48,11 @@ Public container registries are supported by default. Amazon Elastic Container R

### Dockerfile configuration {#dockerfile}

For your custom container image, you must use a Seqera-provided base image and include several additional build steps for compatibility with Studios. To create a Studio with a custom image, see [Add a Studio][add-s].
For your custom container image, you must use a Seqera-provided base image and include several additional build steps for compatibility with Studios. To create a Studio with a custom image, see [Add a Studio][add-s]. Custom images must include an `io.seqera.connect.version` label specifying the `connect-client` version used. Platform uses this label to determine available functionality when configuring and launching the Studio.

:::note
Studios will start without this label, but certain features (such as SSH connectivity) will be unavailable.
:::

#### Ports

Expand All @@ -63,6 +67,7 @@ Upon termination, the container's main process must handle the `SIGTERM` signal
The minimal Dockerfile includes directives to accomplish the following:

- Pull a Seqera-provided base image with prerequisite binaries.
- Set an image label indicating the version used.
- Copy the `connect` binary into the build.
- Set the container entry point.

Expand All @@ -77,13 +82,17 @@ ARG CONNECT_CLIENT_VERSION="0.8"
FROM public.cr.seqera.io/platform/connect-client:${CONNECT_CLIENT_VERSION} AS connect

# highlight-start
# 1. Add connect binary
# 1. Add connect version label to image metadata
ARG CONNECT_CLIENT_VERSION
LABEL io.seqera.connect.version="${CONNECT_CLIENT_VERSION}"

# 2. Add connect binary
COPY --from=connect /usr/bin/connect-client /usr/bin/connect-client

# 2. Install connect dependencies
# 3. Install connect dependencies
RUN /usr/bin/connect-client --install

# 3. Configure connect as the entrypoint
# 4. Configure connect as the entrypoint
ENTRYPOINT ["/usr/bin/connect-client", "--entrypoint"]
# highlight-end
```
Expand All @@ -102,6 +111,8 @@ FROM ubuntu:20.04
RUN apt-get update --yes && apt-get install --yes --no-install-recommends python3

# highlight-start
ARG CONNECT_CLIENT_VERSION
LABEL io.seqera.connect.version="${CONNECT_CLIENT_VERSION}"
COPY --from=connect /usr/bin/connect-client /usr/bin/connect-client
RUN /usr/bin/connect-client --install
ENTRYPOINT ["/usr/bin/connect-client", "--entrypoint"]
Expand Down Expand Up @@ -130,7 +141,7 @@ To inspect the status of an ongoing build, or a successful or failed build, comp
{/* links */}
[add-s]: ./add-studio
[aws-batch]: ../compute-envs/aws-batch
[wave]: ../enterprise/configuration/wave
[wave]: https://docs.seqera.io/platform-enterprise/enterprise/configuration/wave
[custom-studios-examples]: https://github.com/seqeralabs/custom-studios-examples
[wave-home]: https://seqera.io/wave/
[env-manually]: https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-file-manually
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "Custom environments"
description: "Custom environments for Studios"
date created: "2024-10-01"
last updated: "2025-09-30"
last updated: "2026-01-29"
tags: [environments, custom, studio, studio]
---

Expand All @@ -13,7 +13,7 @@ In addition to the Seqera-provided container images, you can provide your own cu
:::info[**Prerequisites**]

- Wave must be configured. For more information, see [Wave containers][wave].
- To augment Seqera-provided images, Enterprise deployments must either allow access to the public Wave server, or self-host their own Wave server.
- The workspace Admin needs to set a target repository per workspace, in **Settings > Studios > Container repository**. If no repository configuration is specified, the build will fail. Each workspace must have credentials available to push to the specified repository.
:::

### Conda package syntax {#conda-package-syntax}
Expand Down Expand Up @@ -48,7 +48,11 @@ Public container registries are supported by default. Amazon Elastic Container R

### Dockerfile configuration {#dockerfile}

For your custom container image, you must use a Seqera-provided base image and include several additional build steps for compatibility with Studios. To create a Studio with a custom image, see [Add a Studio][add-s].
For your custom container image, you must use a Seqera-provided base image and include several additional build steps for compatibility with Studios. To create a Studio with a custom image, see [Add a Studio][add-s]. Custom images must include an `io.seqera.connect.version` label specifying the `connect-client` version used. Platform uses this label to determine available functionality when configuring and launching the Studio.

:::note
Studios will start without this label, but certain features (such as SSH connectivity) will be unavailable.
:::

#### Ports

Expand All @@ -63,6 +67,7 @@ Upon termination, the container's main process must handle the `SIGTERM` signal
The minimal Dockerfile includes directives to accomplish the following:

- Pull a Seqera-provided base image with prerequisite binaries.
- Set an image label indicating the version used.
- Copy the `connect` binary into the build.
- Set the container entry point.

Expand All @@ -77,13 +82,17 @@ ARG CONNECT_CLIENT_VERSION="0.8"
FROM public.cr.seqera.io/platform/connect-client:${CONNECT_CLIENT_VERSION} AS connect

# highlight-start
# 1. Add connect binary
# 1. Add connect version label to image metadata
ARG CONNECT_CLIENT_VERSION
LABEL io.seqera.connect.version="${CONNECT_CLIENT_VERSION}"

# 2. Add connect binary
COPY --from=connect /usr/bin/connect-client /usr/bin/connect-client

# 2. Install connect dependencies
# 3. Install connect dependencies
RUN /usr/bin/connect-client --install

# 3. Configure connect as the entrypoint
# 4. Configure connect as the entrypoint
ENTRYPOINT ["/usr/bin/connect-client", "--entrypoint"]
# highlight-end
```
Expand All @@ -102,6 +111,8 @@ FROM ubuntu:20.04
RUN apt-get update --yes && apt-get install --yes --no-install-recommends python3

# highlight-start
ARG CONNECT_CLIENT_VERSION
LABEL io.seqera.connect.version="${CONNECT_CLIENT_VERSION}"
COPY --from=connect /usr/bin/connect-client /usr/bin/connect-client
RUN /usr/bin/connect-client --install
ENTRYPOINT ["/usr/bin/connect-client", "--entrypoint"]
Expand Down Expand Up @@ -130,7 +141,7 @@ To inspect the status of an ongoing build, or a successful or failed build, comp
{/* links */}
[add-s]: ./add-studio
[aws-batch]: ../compute-envs/aws-batch
[wave]: ../enterprise/configuration/wave
[wave]: https://docs.seqera.io/platform-enterprise/enterprise/configuration/wave
[custom-studios-examples]: https://github.com/seqeralabs/custom-studios-examples
[wave-home]: https://seqera.io/wave/
[env-manually]: https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-file-manually
Loading