Application Image#

The workspace.spec.image attribute determines what software runs in the workspace’s container. Any container image that listens on an HTTP port works — common choices include:

  • JupyterLab

  • VS Code (code-server, OpenVSCode Server)

  • Custom images built on top of the above

Image selection with templates#

When a workspace references a template, the template controls which images are allowed:

Template setting

Effect

defaultImage

Used when the workspace omits spec.image

allowedImages

AllowList — workspace may pick from this list

allowCustomImages: true

Any image is accepted

If the template defines allowedImages and the workspace specifies an image not in the list, the admission webhook rejects the request.

Container configuration#

You can override the image’s default entrypoint with spec.containerConfig:

spec:
  containerConfig:
    command: ["/bin/sh"]
    args: ["-c", "jupyter lab --ip=0.0.0.0 --port=8888"]

Templates can provide a defaultContainerConfig that applies when the workspace doesn’t specify one.