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.
See also this page for making the image available to Instruqt:
We currently do not support Windows based container images.
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.
The Instruqt platform currently assumes that the virtual machines in sandbox environments are Linux based. That means Windows support is limited.
What currently works:
Network connectivity between hosts, including DNS resolution based on host names defined in the environment configuration.
Injection of environment variables, that are defined in the environment configuration.
Injection of instruqt
user with password Passw0rd!
, to facilitate interaction from others hosts in the environment.
What does NOT work yet:
Executing life cycle scripts directly on the Windows host.
Adding terminal/editor tabs for Windows hosts.
Full Windows VM support is on our roadmap.
However, it is still possible to run Windows based images as part of sandbox environments. To interact with these images we support the following work-around:
Create a sandbox environment with two images; 1 Linux based, and 1 Windows based
The Windows VM will run your software.
The Linux VM is used as a proxy to the Windows VM for running life cycle scripts, and providing terminal access.
Create a Windows based VM image, that has:
Your software installed.
An SSH server (see https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse), that we can use to execute lifecycle scripts
A set of hard-coded credentials (username/password), that can be when executing scripts from the Linux VM, or use the automatically injected instruqt
user.
Optional: If you need remote desktop support, install something like Remote Desktop Web Client, Myrtille or Apache Guacamole, which you can then point to using a service
tab.
Optional: If you need terminal support, either let users connect via an ssh command on the Linux VM, or install ttyd and expose that via a service
tab.
We have create an example track for this work-around. The example is based on Windows Server 2019, and includes Myrtille and OpenSSH for connectivity.
You can play the example track here: https://play.instruqt.com/instruqt/tracks/windows-desktop. And the source code is available at: https://github.com/instruqt/track-windows-desktop.
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.