Blazer project for arm gives Manifest unknown

Hi Support.
Ticket No#53051

I have a virtual box machine running Ubuntu 24.04 with Docker engine 29.1.2 , and VS Code 1.106.3 and Torizon IDE Extension 3.2.6 installed.

I can create a Blazer project called blazer1, but when I start the task runner: run-container-torizon-release-arm it aborts the process at: “pull-from-target-release”.

The error message is:

Executing task: sleep 1 && DOCKER_HOST=192.168.10.103:2375 docker pull localhost:5002/blazer1:v0.0.0 

Error response from daemon: manifest for localhost:5002/blazer1:v0.0.0 not found: manifest unknown: manifest unknown

*  The terminal process "/usr/bin/bash '-c', 'sleep 1 && DOCKER_HOST=192.168.10.103:2375 docker pull localhost:5002/blazer1:v0.0.0'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it.

This is building for an iMX7 1GB SOM so should be linux-arm platform I believe.

If I check the repository the manifest does not have the linux/arm in its manifest.

torizon@colibri-imx7-emmc-07311078:~$ curl http://192.168.10.189:5002/v2/_catalog                                                                                         {"repositories":["blazer1","hmi","hmi-debug"]}
torizon@colibri-imx7-emmc-07311078:~$ curl http://192.168.10.189:5002/v2/blazer1/tags/list                                                                                {"name":"blazer1","tags":["v0.0.0"]}
torizon@colibri-imx7-emmc-07311078:~$ curl http://192.168.10.189:5002/v2/blazer1/manifests/v0.0.0                                                                         {
  "schemaVersion": 2,
  "mediaType": "application/vnd.oci.image.index.v1+json",
  "manifests": [
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "digest": "sha256:7e204f2a5aa37c1e5f25713adc3fac78073a6a5a595876daf1565812d38636ca",
      "size": 3515,
      "platform": {
        "architecture": "amd64",
        "os": "linux"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "digest": "sha256:7592b5f2068d2935aa7980d7052ca0e2c6f208a7e3b585c32c16d217b1a28ffd",
      "size": 566,
      "annotations": {
        "vnd.docker.reference.digest": "sha256:7e204f2a5aa37c1e5f25713adc3fac78073a6a5a595876daf1565812d38636ca",
        "vnd.docker.reference.type": "attestation-manifest"
      },
      "platform": {
        "architecture": "unknown",
        "os": "unknown"
      }
    }
  ]
}

Which Part of the build process sets the target type and how can I check the image target type has been created succefully?

Can you make some suggestions as to what I have miss configured which would cause the manifest to contain an ‘linux/amd64’ image and not an 'linux/arm image.

I have the

"torizon_arch": "arm",

Set in the .vscode/settings.json file.

Regards
Lloyd Jones

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Issue Analysis

The error you’re experiencing indicates that the container image was built for the wrong architecture (amd64 instead of arm). This is a common issue when ARM emulation is not properly enabled or when the build process doesn’t correctly use the target architecture (1).

Root Cause and Solution

1. Enable ARM Emulation

The most likely cause is that ARM emulation is not enabled on your development machine. ARM emulation must be enabled every time you reboot your system (1).

Run this command to enable ARM emulation:

docker run --rm -it --privileged torizon/binfmt

(1)

2. Verify ARM Emulation is Working

Test that ARM emulation is properly configured by running:

docker run --rm -it --pull always --platform linux/arm/v7 debian arch

(1)

This should return armv7l (1). If you get an exec format error, ARM emulation is not working properly (1).

3. Architecture Configuration

For your iMX7 SoM, verify your .vscode/settings.json has the correct architecture setting. You mentioned having "torizon_arch": "arm", which is correct for iMX7.

4. Build Process Architecture

The build process uses the IMAGE_ARCH build argument to specify the target architecture (2). When building containers, the extension automatically sets this based on your torizon_arch setting (2).

Troubleshooting Steps

  1. Reboot and re-enable ARM emulation: Since ARM emulation is not persistent, ensure you run the binfmt command after every system reboot (1).

  2. Clean and rebuild: After enabling ARM emulation, clean your local registry and rebuild:

    docker system prune -a
    
  3. Verify your Dockerfile: Check that your Dockerfile uses the IMAGE_ARCH build argument correctly (2):

    FROM --platform=linux/${IMAGE_ARCH} torizon/debian:${BASE_VERSION}
    
  4. Check build logs: Look for any warnings about platform mismatches during the build process.

The fact that your manifest shows linux/amd64 instead of linux/arm confirms that ARM emulation was not active during the build process, causing Docker to build for the host architecture instead of the target architecture.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

I have checked that arm emulasion is enabled by restarting the virtual machine and running both these commands in a terminal window.

$ docker run --rm -it --privileged torizon/binfmt
$ docker run --rm -it --pull always --platform linux/arm/v7 debian arch
latest: Pulling from library/debian
Digest: sha256:0d01188e8dd0ac63bf155900fad49279131a876a1ea7fac917c62e87ccb2732d
Status: Image is up to date for debian:latest
armv7l

Also, the Torizon extension runs these at start up;

Executing task: xonsh /home/lloydj/Torizon/Blazer1/Blazer1/.conf/run-container-if-not-exists.xsh --container-runtime docker --run-arguments "--rm --privileged torizon/binfmt:latest" --container-name binfmt 

Container Runtime: docker
Run Arguments: --rm --privileged torizon/binfmt:latest
Container Name: binfmt
Container does not exist. Starting ...
Cmd: docker run --name binfmt --rm --privileged torizon/binfmt:latest
 *  Terminal will be reused by tasks, press any key to close it. 

does this indicate a successful operation?

If I run the docker command in a terminal I get the following output.

lloydj@TorizonDevelopment:~/Torizon/Blazer1/Blazer1$ docker run --rm -it --pull always --platform linux/arm/v7 debian arch
latest: Pulling from library/debian
Digest: sha256:0d01188e8dd0ac63bf155900fad49279131a876a1ea7fac917c62e87ccb2732d
Status: Image is up to date for debian:latest
armv7l
lloydj@TorizonDevelopment:~/Torizon/Blazer1/Blazer1$ 

However if I run the run-container-torizon-release-run task runner I get:

No specific initial task defined for this template
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: xonsh .conf/validate-deps-running.xsh 


⚠️ VALIDATING ENVIRONMENT

OS:         Linux
OS Version: 6.14.0-37-generic
OS Arch:    x86_64
Under WSL:  false
VS Code:
1.106.3
bf9252a2fb45be6893dd8870c0bf37e2e1766d61
x64

TOR Extension:  toradex.apollox-vscode@3.2.6

✅ Environment is valid!

 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: bash -c [[ ! -z "192.168.10.103" ]] && true || false 

 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: bash -c [[ "arm" == "arm" ]] && true || false 

 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: sshpass -p sinclair123 scp -P 22 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PubkeyAuthentication=no /home/lloydj/Torizon/Blazer1/Blazer1/docker-compose.yml torizon@192.168.10.103:~/ 

Warning: Permanently added '192.168.10.103' (ED25519) to the list of known hosts.
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: /home/lloydj/Torizon/Blazer1/Blazer1/.conf/remove-dangling-images.xsh 192.168.10.103:2375 

Waiting for prune lock on host 192.168.10.103:2375
Pruning dangling images on 192.168.10.103:2375
Total reclaimed space: 0B
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: docker compose -p torizon stop blazer1 blazer1-debug && docker compose -p torizon rm -f blazer1 blazer1-debug && sleep 1 

No stopped containers
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: xonsh /home/lloydj/Torizon/Blazer1/Blazer1/.conf/torizon-packages.xsh armhf 

Applying torizonPackages.json: 
Applying to Dockerfile.debug ...
✅ Dockerfile.debug
Applying to Dockerfile ...
✅ Dockerfile
torizonPackages.json applied
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: DOCKER_HOST= docker compose build --pull --build-arg SSHUSERNAME=torizon --build-arg APP_ROOT=/home/torizon/app --build-arg IMAGE_ARCH=arm --build-arg GPU= blazer1 

WARN[0000] The "LOCAL_REGISTRY" variable is not set. Defaulting to a blank string. 
WARN[0000] The "LOCAL_REGISTRY" variable is not set. Defaulting to a blank string. 
[+] Building 1.8s (16/16) FINISHED                                                                                                                                                           
 => [internal] load local bake definitions                                                                                                                                              0.0s
 => => reading from stdin 709B                                                                                                                                                          0.0s
 => [internal] load build definition from Dockerfile                                                                                                                                    0.0s
 => => transferring dockerfile: 2.37kB                                                                                                                                                  0.0s
 => [internal] load metadata for docker.io/torizon/aspdotnet8:4                                                                                                                         0.9s
 => [internal] load metadata for mcr.microsoft.com/dotnet/sdk:8.0                                                                                                                       0.2s
 => [internal] load .dockerignore                                                                                                                                                       0.0s
 => => transferring context: 2B                                                                                                                                                         0.0s
 => [internal] load build context                                                                                                                                                       0.0s
 => => transferring context: 16.23kB                                                                                                                                                    0.0s
 => [deploy 1/4] FROM docker.io/torizon/aspdotnet8:4@sha256:10865851d2f4baaf8f1f1a0f00d079afb7bfbb1fe940a5c29073244be51a4d00                                                            0.1s
 => => resolve docker.io/torizon/aspdotnet8:4@sha256:10865851d2f4baaf8f1f1a0f00d079afb7bfbb1fe940a5c29073244be51a4d00                                                                   0.1s
 => [build 1/4] FROM mcr.microsoft.com/dotnet/sdk:8.0@sha256:8f710c2f7f3e60392fba1d408dcd9c30c26295bd4ded326cb7cf6cc6fd66cfde                                                           0.1s
 => => resolve mcr.microsoft.com/dotnet/sdk:8.0@sha256:8f710c2f7f3e60392fba1d408dcd9c30c26295bd4ded326cb7cf6cc6fd66cfde                                                                 0.1s
 => CACHED [deploy 2/4] RUN apt-get -y update && apt-get install -y --no-install-recommends  && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/*                      0.0s
 => CACHED [build 2/4] COPY . /home/torizon/app                                                                                                                                         0.0s
 => CACHED [build 3/4] WORKDIR /home/torizon/app                                                                                                                                        0.0s
 => CACHED [build 4/4] RUN dotnet restore blazer1.csproj &&     if [ "arm" = "arm64" ] ; then         export ARCH=arm ;     elif [ "arm" = "armhf" ] ; then         export ARCH="arm"   0.0s
 => CACHED [deploy 3/4] COPY --from=build /home/torizon/app/bin/Release/net8.0/linux-arm/publish /home/torizon/app                                                                      0.0s
 => CACHED [deploy 4/4] WORKDIR /home/torizon/app                                                                                                                                       0.0s
 => exporting to image                                                                                                                                                                  0.3s
 => => exporting layers                                                                                                                                                                 0.0s
 => => exporting manifest sha256:7e204f2a5aa37c1e5f25713adc3fac78073a6a5a595876daf1565812d38636ca                                                                                       0.0s
 => => exporting config sha256:775d22c960f72fc84201bf9fc98be4ffee06b8096641c91e4701bce7656003c3                                                                                         0.0s
 => => exporting attestation manifest sha256:d3f219e9b9e0d816086395dcb43700507eab975d29c257f5665ffcf210c163ef                                                                           0.1s
 => => exporting manifest list sha256:3506f9969cac94dd4a0d1deb76ea7cc9d339013c2f52655caae0ab520272d1c0                                                                                  0.0s
 => => naming to localhost:5002/blazer1:v0.0.0                                                                                                                                          0.0s
 => => unpacking to localhost:5002/blazer1:v0.0.0                                                                                                                                       0.0s
 => resolving provenance for metadata file                                                                                                                                              0.0s
[+] build 1/1
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: DOCKER_HOST= docker compose push blazer1 

WARN[0000] The "GPU" variable is not set. Defaulting to a blank string. 
WARN[0000] The "GPU" variable is not set. Defaulting to a blank string. 
WARN[0000] The "LOCAL_REGISTRY" variable is not set. Defaulting to a blank string. 
WARN[0000] The "LOCAL_REGISTRY" variable is not set. Defaulting to a blank string. 
[+] push 16/17
 ⠙ localhost:5002/blazer1:v0.0.0 [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] Pushing                                                                                                                             0.2s 
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: /home/lloydj/.local/bin/xonsh /home/lloydj/Torizon/Blazer1/Blazer1/.conf/spin-up-down-registry.xsh down sinclair123 torizon 192.168.10.103 /home/lloydj/Torizon/Blazer1/Blazer1 

torizon-ide-port-tunnel
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: /home/lloydj/.local/bin/xonsh /home/lloydj/Torizon/Blazer1/Blazer1/.conf/spin-up-down-registry.xsh up sinclair123 torizon 192.168.10.103 /home/lloydj/Torizon/Blazer1/Blazer1 

Container Runtime: docker
Run Arguments: --rm -d --network host torizonextras/ide-port-tunnel:0.0.0 sshpass -p sinclair123 ssh -vv -N -R 5002:localhost:5002 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PubkeyAuthentication=no torizon@192.168.10.103
Container Name: torizon-ide-port-tunnel
Container does not exist. Starting ...
Cmd: docker run --name torizon-ide-port-tunnel --rm -d --network host torizonextras/ide-port-tunnel:0.0.0 sshpass -p sinclair123 ssh -vv -N -R 5002:localhost:5002 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PubkeyAuthentication=no torizon@192.168.10.103
24128fbbbc126d76914ee43c869dfe39d7b0a9381f66a9a8e94150fb52b4fc54
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: xonsh /home/lloydj/Torizon/Blazer1/Blazer1/.conf/service-check.xsh registry sinclair123 22 torizon 192.168.10.103 'curl --silent --max-time 5 http://localhost:5002/v2/_catalog' 

Registry ready
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: sleep 1 && DOCKER_HOST=192.168.10.103:2375 docker pull localhost:5002/blazer1:v0.0.0 

Error response from daemon: manifest for localhost:5002/blazer1:v0.0.0 not found: manifest unknown: manifest unknown

 *  The terminal process "/usr/bin/bash '-c', 'sleep 1 && DOCKER_HOST=192.168.10.103:2375 docker pull localhost:5002/blazer1:v0.0.0'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it.

Can you see anything wrong with this output?

Lloyd

Issue Analysis

Looking at your output, I can see that ARM emulation is working correctly - the armv7l response confirms this (1). The issue appears to be in the Docker build process or registry configuration.

Key Observations

From your build log, I notice several important points:

1. Build Arguments Are Correct

Your build shows:

--build-arg IMAGE_ARCH=arm

This is the correct setting for iMX7 (1).

2. Registry Push Appears Successful

The build log shows:

[+] push 16/17
⠙ localhost:5002/blazer1:v0.0.0 [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] Pushing

3. Port Tunnel is Working

The registry tunnel setup appears successful:

Registry ready

Potential Solutions

1. Docker Desktop Configuration Issue

Based on similar issues reported in the community, this could be related to Docker Desktop’s “containerd” setting (2). If you’re using Docker Desktop, check if the “Use containerd for pulling and storing images” option is enabled and try disabling it (2).

2. Registry Synchronization Issue

There might be a timing issue between the push and pull operations. Try these steps:

  1. Verify the image was pushed correctly by checking the registry from your development machine:
curl http://localhost:5002/v2/blazer1/manifests/v0.0.0
  1. Check if the registry tunnel is working from the target device:
curl http://localhost:5002/v2/_catalog

3. Manual Registry Verification

On your target device (192.168.10.103), verify the registry is accessible:

curl http://localhost:5002/v2/blazer1/tags/list

4. Clean Build Process

Try a complete clean build:

  1. Stop all containers and clean the local registry:
docker system prune -a
  1. Rebuild the project from scratch using the Torizon IDE extension.

Architecture Verification

To verify your Dockerfile is correctly configured, ensure it uses the IMAGE_ARCH build argument properly. For .NET Blazor projects, the Dockerfile should contain something like:

FROM --platform=linux/${IMAGE_ARCH} torizon/aspdotnet8:4

The fact that your build log shows linux-arm/publish in the COPY command suggests the architecture is being set correctly during the build process.

Next Steps

  1. Check Docker Desktop settings if applicable (2)
  2. Verify registry connectivity from both sides
  3. Try a manual pull after ensuring the registry tunnel is stable
  4. Check for any firewall issues that might affect the registry tunnel

The issue seems to be in the registry communication rather than the ARM emulation or build process itself.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

After Further investigation.
To support multi platform capability containerd needs to be enabled. This is enabled by default in server versions 29.0 onward.
The ubuntu terminal window reports

$ docker info -f '{{ .DriverStatus }}'
[[driver-type io.containerd.snapshotter.v1]]
$ docker info -f '{{ .ServerVersion }}'
29.1.2

But if I run this in a VS code terminal I get

$ docker info -f '{{ .DriverStatus }}'
[[Backing Filesystem extfs] [Supports d_type true] [Using metacopy false] [Native Overlay Diff true] [userxattr false]]
$ docker info -f '{{ .ServerVersion }}'
25.0.3

So it looks like containerd is not enabled in VS Code.
It looks like the docker commands are being executed on the target as that has the same server version which is 25.0.3 and does not support containerd.

Is there a version of Torizon OS that I should be using with the latest Torizon OS on the iMX7 1GB SOM?

I am using the following:

Software summary
------------------------------------------------------------
Bootloader:               U-Boot
Kernel version:           6.6.53-7.0.0-00029-g68da80fb0462 #1-Torizon SMP PREEMPT Mon Jun 17 16:49:11 UTC 2024
Kernel command line:      root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/cbc41e7f4bcccd33ac6fac530b82712e88062c173683e88327a2b2f380367a0a/0
Distro name:              NAME="Torizon OS Upstream"
Distro version:           VERSION_ID=7.0.0-build.1
Hostname:                 colibri-imx7-emmc-07311078
------------------------------------------------------------

Hardware info
------------------------------------------------------------
HW model:                 Toradex Colibri iMX7D 1GB (eMMC) on Colibri Evaluation Board V3
Toradex version:          0039 V1.1B
Serial number:            07311078
Processor arch:           armv7l
------------------------------------------------------------

Issue Analysis

Your investigation has identified the root cause! The version mismatch between Docker versions is causing the multi-platform build issues. You’re absolutely correct that containerd support is needed for proper multi-platform builds.

Version Compatibility Issue

You’re running Torizon OS 7.0.0-build.1 on your iMX7, which includes Docker 25.0.3 (1). This version predates the automatic containerd enablement that came with Docker 29.0+. The Torizon IDE Extension expects proper multi-platform support for ARM builds (2).

Solutions

1. Update to a Newer Torizon OS Version

For your Colibri iMX7D, you should consider updating to a more recent Torizon OS version that includes a newer Docker version with better multi-platform support. The Torizon IDE Extension is designed to work with current Torizon OS releases (2).

2. Alternative Development Approach

Since you’re working with an older Torizon OS version, you might need to use the fallback development workflow that doesn’t rely as heavily on the IDE Extension’s automated multi-platform builds (3). This approach involves working directly with containers and Docker Compose (3).

3. Manual Docker Configuration

On your target device (if possible), you could try enabling containerd manually, though this may not be supported on older Torizon OS versions.

Recommended Action

The most reliable solution would be to update your Torizon OS to a newer version that includes Docker 29.0+ with proper containerd support. This will ensure compatibility with the Torizon IDE Extension’s multi-platform build capabilities (2).

The Torizon IDE Extension provides integrated container-based development that automatically configures the correct ARM toolchains for your target device (2), but this requires proper Docker multi-platform support.

Development Environment Compatibility

The Torizon IDE Extension is designed to work with modern Torizon OS versions and expects certain Docker capabilities to be available (2). Your current setup with Torizon OS 7.0.0-build.1 and Docker 25.0.3 may be too old for optimal compatibility with the latest extension features.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

@ToradexAI

Hi
I have upgraded the iMX7 1GB SOM to the following.

$ sudo tdx-info
Password:

Software summary
------------------------------------------------------------
Bootloader:               U-Boot
Kernel version:           6.6.117-7.5.0-devel-00057-gde07c0de67c8 #1-Torizon SMP PREEMPT Mon Jun 30 14:11:55 UTC 2025
Kernel command line:      root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/b2b517fcc8cc7433570cb5f98a22c841a1a0fbe11b13c8847f66934819615b96/0
Distro name:              NAME="Torizon OS Upstream"
Distro version:           VERSION_ID=7.5.0-devel-202512-build.15
Distro variant:           VARIANT="Docker"
Hostname:                 colibri-imx7-emmc-14701015
------------------------------------------------------------

Hardware info
------------------------------------------------------------
HW model:                 Toradex Colibri iMX7D 1GB (eMMC) on Colibri Evaluation Board V3
Toradex version:          0039 V1.1B
Serial number:            14701015
Processor arch:           armv7l
------------------------------------------------------------

It fails as before.
When I run docker info it reports

$ docker info
Client:
 Version:    25.0.3
 Context:    default
 Debug Mode: false
 Plugins:
  compose: Docker Compose (Docker Inc.)
    Version:  v2.26.0
    Path:     /usr/lib/docker/cli-plugins/docker-compose

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 25.0.3
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: runc io.containerd.runc.v2
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 4ac6c20c7bbf8177f29e46bbdc658fec02ffb8ad.m
 runc version: v1.1.14-0-g2c9f5602-dirty
 init version: b9f42a0-dirty
 Security Options:
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.6.117-7.5.0-devel-00057-gde07c0de67c8
 Operating System: Torizon OS Upstream 7.5.0-devel-202512+build.15 (scarthgap)
 OSType: linux
 Architecture: armv7l
 CPUs: 2
 Total Memory: 995.4MiB
 Name: colibri-imx7-emmc-14701015
 ID: 80d714cc-aa84-41bf-9748-99262c53dc49
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  192.168.1.190:5002
  127.0.0.0/8
 Live Restore Enabled: false

when I run

$ docker info -f '{{ .ServerVersion }}'
25.0.3

it still reports version 25 and not 29.

Is there a OS image for the iMX7 1GB SOM which has docker support version 29?

Current Docker Version Status

Your Torizon OS 7.5.0-devel version still includes Docker 25.0.3, which predates the automatic containerd multi-platform support that was introduced in Docker 29.0+. Even though you’ve updated to a newer Torizon OS development build, the Docker version remains the same.

Colibri iMX7 Support Status

Looking at the Colibri iMX7 documentation, Torizon OS support is available specifically for the Colibri iMX7D 1GB variant (1). However, the sources don’t specify which Docker version is included in the most current production releases for this module.

Alternative Solutions

Since Docker 29+ may not be available yet for your platform, here are some approaches to work around the multi-platform build issue:

1. Manual ARM Build Process

You can build ARM containers directly on your development machine using explicit platform targeting:

docker buildx build --platform linux/arm/v7 -t your-image:tag .

2. Registry Configuration

Ensure your local registry properly handles multi-architecture manifests by configuring it to accept the ARM builds from your development environment.

3. Development Workflow Adjustment

Consider using the container development approach where you build on your development machine and deploy to the target, rather than relying on the IDE extension’s automated cross-platform builds (2).

Recommendation

For the most current information about Docker version availability in Torizon OS releases for your Colibri iMX7D module, I’d recommend checking the latest release notes and available images. The development builds you’re using may not yet include the newer Docker versions needed for seamless multi-platform builds.

You might also consider using the manual build approach with explicit platform targeting as a workaround until newer Docker versions become available for your platform.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.