This repository contains container setups that should work on all systems, while providing sufficient quality of life for the common developer.
All commands assume your terminal working directory is this folder.
You may need to restart your system one or more times during setup
- Ensure you are using Wayland instead of X11
- This can be typically set during login. Most people can find a settings menu in the bottom right corner.
- Refer to a search engine for more details.
- Install Docker or Podman
- Follow the relevant steps for your system
- Install docker-compose
All NVIDIA users should install the NVIDIA drivers and install the NVIDIA Container Toolkit in order to be able to leverage NVIDIA hardware within the container.
If you're running on a Laptop with dual GPU, also follow the NVIDIA specific README
You only need to do this once
Many container configurations is designed with the capability to present windows for programs within the container on the host system.
In order to ensure that the authorisation token is in the same location everytime, a SystemD service is used to copy the file everytime the user logs in.
To install and enable this service, run the following commands.
cp _utils/xauthority.service ~/.config/systemd/user/
systemctl enable --user --now xauthority.serviceOnce the fundamentals are set-up. You can now build your own container
First navigate to the target container directory (in this case we are using IsaacSim)
cd IsaacSimThen we can build an image for this container, using a file that describes how to build the image.
[docker|podman] compose buildThis may take some depending on the image, so sit back and have a cup of tea.
Assuming the build process succeeded, we can now deploy our container instance.
[docker|podman] compose up -dThis will spin up a container with the image that was built earlier. And will print the name of the container in the terminal. In this case the terminal name is container_isaac_sim.
You can access the container via the following command. You may replace the container name with the appropriate one if you chose a different configuration.
[docker|podman] exec -ti container_isaac_sim bashNow you can run programs in the container. In our guide, we deployed the IsaacSim container, so we can attempt to run that.
isaacsimIf everything went right, we should see the IsaacSim window appear on our desktops.
A convenient way to access and code within the container is to use the Remote development extension pack.
Once installed, there would be an icon in the sidebar that shows all of the running (and not running) containers. You can attach to any of them via a click of a button!
Once attached, the terminal and filesystem will reflect the contents of the container.
- Make use of Git to save your codebase. In the event that the container is inaccessible, retrieving your code is impractical. Form good habits and ensure your code is committed to GitHub/GitLab