-
Install the emulators
docker run --privileged --rm tonistiigi/binfmt --install all
-
Create a new buildx environment
docker buildx create --name multiarch --driver docker-container --bootstrap --use
NOTE: It may be necessary to uninstall incorrectly registered emulators e.g. docker run --privileged --rm tonistiigi/binfmt --uninstall qemu-x86_64
before reinstalling them.
To allocate resources for WSL2, create the file .wslconfig
in the %UserProfile%
directory. Allocate 4GB of RAM (or more if available) like this:
[wsl2]
memory=4GB
Other settings can also be applied.
On macOS and Windows [1], a linux virtual machine (Moby based on Alpine Linux) acts as an intermediary in which images, containers and volumes are stored.
- [1]: On macOS the Linux virtual machine which hosts the containers can be inspected with the command:
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
- [2]: If you are using PowerShell, you can enable tab completion by installing the PowerShell module
posh-docker
. Similarly, for tab completion of git commands in PowerShell, installposh-git
.
- Change TL;DR and recommended instructions to use the devcontainer.
- Update link in README to Workshop slides.
- Add a layer for automatically building statically linked binaries for small containers or to be copied out and run natively
- Add
.vscode
and.devcontainer
(forlaunch.json
,devcontainer.json
, etc.) to automatically configure VS Code. - Modify scripts to parse arguments flexibly
- Add help (-h) option to all scripts.
- Add commands to run.sh to launch a second terminal with
docker stats
: - Dockerfile best practices
- Use tmpfs mounts to store temporary data in RAM for extra speed on Linux.
- Add support for singularity #4
- Automate
base
andrelease
builds on Docker Hub and/or GitHub Actions or GitHub Packages. - Migrate Travis-CI from .org to .com
- Use multi-stage builds for building apps.
- Split into base and release images
- Make cmake build options flexible for developers vs. users.