Overview
Images provide most of the functionality for your spaces, so they're a very important part of your organization. This guide will explain how to use the Spaces Admin Portal to both leverage itopia's catalog of pre-configured images and import your own custom-built images.
Using itopia's image catalog
itopia Spaces comes with pre-configured images for a variety of IDEs and programming languages. These are perfect for getting started, but they're also sufficient for most software development work in their respective languages. If you're curious, we build and maintain them in this open-source GitHub repository.
To use one of them, simply navigate to the COLLECTIONS tab in one of your deployments, ...
... click the NEW SPACE button, ...
... and select your preferred image from the list.
Next, you can name your new space, adjust its settings (now or later), create it, and launch it. Inside your new space, you will find that the IDE and runtime you selected are pre-installed and ready to use.
Creating custom images
Of course, we can't predict everything that you will want to pre-install for your developers. That's why we've made it easy to configure custom images that can quickly install complex dependencies and smoothly run unique applications.
A image on Spaces is simply a Docker or OCI image plus some Spaces-specific metadata. Therefore, the three steps for creating a custom image are:
- building a Docker/OCI image,
- hosting that image on a supported image registry, and
- importing that image into Spaces via the Spaces Admin Portal.
Building
For this step, you'll need some familiarity with how to build a Docker/OCI image. Here is a helpful guide.
We recommend using one of the Spaces base images as your custom image's base, as they contain many subtle layers of Spaces-specific compatibility that enable Docker/OCI containers to function as serverless virtual desktops.
Example:
FROM ghcr.io/itopia-inc/spaces-base-images/spaces-ubuntu-base:focal
Alternatively, you could use one of the Spaces pre-configured images as your custom image's base, in order to inherit an IDE and/or runtime. (These pre-configured images are based on the base images, so you still get the compatibility layers.)
Example:
FROM ghcr.io/itopia-inc/spaces-images/spaces-ubuntu-openjdk-eclipse:focal-11
After choosing your base layer, you can add COPY
and RUN
layers for your custom files and pre-installation logic. For examples of how to install tools inside your custom image, see how our pre-configured images.
Hosting
For this step, you'll need an account with one of our supported registries: Docker Registry, GitHub Container Registry, Google Artifact Registry, or Google Container Registry.
Follow your registry's documentation for how to prepare your registry, authenticate your local Docker CLI to the registry, and how to docker tag
& docker push
your custom image up to the registry.
Importing
For this step, you'll need to have already signed up for Spaces.
To import your custom image into Spaces, navigate to the SETTINGS tab for one of your deployments in the Spaces Admin Portal, ...
... click the NEW CREDENTIALS button, ...
... and input credentials for your registry. Follow your registry's documentation to obtain the key/token.
Then, click the NEW IMAGE button, ...
... describe your custom image and provide its registry information, ...
... and set its status as Draft or Live before finally creating the image.
Now you can create spaces from your custom image, as it will simply appear in the image selection list during space creation.
Comments
0 comments
Article is closed for comments.