Custom images

A sandbox host can be a container or a virtual machine. You can use any container image, as long as Instruqt can pull the image.

Our virtual machines run on Google Cloud. You can provide your own virtual machine image, if you host it as a Compute Engine image on Google Cloud and ake sure Instruqt can pull the image.

How to create a custom Docker image?

Before creating your custom Docker image, make sure that the image you need is not already available on the Docker hub. To get started on building your own Docker image, head over to the Docker documentation.

When you intend on using your own Docker container images, make sure you either make them public or host them in a private Google Cloud Container Registry and grant access to the Instruqt service accounts. You can do so by granting the role roles/storage.objectViewer on the backing storage to the following Instruqt service accounts:

Container images built using podman or buildah might not work properly. Sometimes tracks using those images won't start, and instruqt track logs keep showing a similar message like below: 2020-12-04T12:50:31Z bii3rgpaqgcr INFO: module.hostname.kubernetes_deployment.deployment: Still creating... [1m0s elapsed]

To fix this, try building your container using docker, instead of podman/buildah.

The underlying problem is that the mediaType in the container image is not set properly, causing the kubernetes pod to fail with the following error:

Error response from daemon: mediaType in manifest should be 'application/vnd.docker.distribution.manifest.v2+json' not ''

We currently do not support Windows based container images.

How to create a custom Virtual Machine image?

Our virtual machine images run on Google Cloud. To create your own vm image, head over to the Packer documentation. If you need some inspiration, you can browse our github organization and search for our packer repositories. If you need help, please reach out to us on Slack.

How to use custom virtual machine images?

If you want to use your own virtual machine images you need to host them publicly, or grant Instruqt access. Grant the role roles/compute.imageUser to the Instruqt service account: [email protected]

If you need more guidance, read the Google Cloud documentation on sharing custom compute images between organizations.

How to run a desktop application on Instruqt?

It depends! Since we base Instruqt around Linux, you can run most Linux based applications right on Instruqt. However, if you intend on running a Windows based application, this is currently possible, but only through a workaround. Please reach out to us by joining us on Slack so we can get you started.