Environment
-
Host OS: Ubuntu 22.04.5 LTS
-
VS Code: 1.107.1
-
Torizon IDE Extension: 3.2.6
-
Docker: Engine (not Desktop, as recommended by the guide)
-
Target: Verdin iMX8M Mini
-
Guide followed: Set Up the IDE Ext2 Environment
Problem Description
After a fresh Docker Engine installation on Ubuntu following the official guide (which recommends Docker Engine over Docker Desktop for Linux), I encountered two issues when trying to debug a Python project created with the Torizon IDE Extension.
Issue 1: Manifest architecture mismatch
When running debug, the pull command failed:
Executing task: DOCKER_HOST=192.168.15.36:2375 docker pull localhost:5002/python3-docker-debug:arm64
no matching manifest for linux/arm64/v8 in the manifest list entries
The image was being built correctly as arm64 locally (docker inspect confirmed this), but when pushed to the local registry, the manifest showed amd64 instead.
Issue 2: Docker Compose crash
After fixing Issue 1, the extension failed with a panic error:
Executing task: DOCKER_HOST= docker compose push python3-docker-debug
panic: runtime error: index out of range [19] with length 9
goroutine 16 [running]:
github.com/docker/compose/v5/cmd/display.(*ttyWriter).lineText(...)
Root Cause Analysis
I identified the problems by comparing with a working Windows 11 + WSL2 setup that followed the same guide successfully.
| Component | Ubuntu (broken) | Windows/WSL2 (working) |
|---|---|---|
| Docker | 29.1.3 | 28.4.0 |
| containerd | 2.2.1 | 1.7.27 |
| Storage Driver | io.containerd.snapshotter.v1 | overlay2 |
| Docker Compose | v5.0.0 | v2.39.2 |
Issue 1 was caused by Docker 29.x enabling the containerd-snapshotter by default, which corrupts the manifest when pushing multi-arch images to a local registry.
Issue 2 is a bug in Docker Compose v5.0.0.
Workaround Applied
Fix 1: Disable containerd-snapshotter
Create or edit /etc/docker/daemon.json:
json
{
"features": {
"containerd-snapshotter": false
}
}
Then restart Docker:
bash
sudo systemctl restart docker
Verify with:
bash
docker info | grep "Storage Driver"
# Should show: Storage Driver: overlay2
Fix 2: Downgrade Docker Compose to v2.x
bash
sudo curl -L "https://github.com/docker/compose/releases/download/v2.32.4/docker-compose-linux-x86_64" \
-o /usr/libexec/docker/cli-plugins/docker-compose
sudo chmod +x /usr/libexec/docker/cli-plugins/docker-compose
After both fixes, I cleaned up the environment and recreated the project:
bash
docker system prune -a --volumes
docker stop registry && docker rm registry
docker run -d -p 5002:5000 --restart=always --name registry registry:2
Then created a new project in VS Code with the Torizon extension. The debug workflow now works correctly.
Questions for Toradex Team
-
Did I miss something in my initial configuration, or is this a known incompatibility with Docker 29.x and Compose v5.0.0?
-
Is the workaround I applied (disabling containerd-snapshotter and downgrading Compose) the recommended solution, or is there a better approach?
-
Are there plans to support these newer Docker versions in future releases of the Torizon IDE Extension?
Thank you!