Ide-port-tunnel:0.0.0 error

docker: Error response from daemon: image with reference torizonextras/ide-port-tunnel:0.0.0 was found but its platform (linux/amd64) does not match the specified platform (linux/arm64)

I am building the arm64 debug version of my project. This is something new that I ran into lately.
I have tried removing it from the images, but it just seems to keep pulling the amd64 version.

Is there some setting that needs to be changed somewhere? I have found that some changes resets the project setting of what you are building for and find myself building for amd64 instead of arm64. I wish I could set the default to arm64 so that would not happen.

Also, it does not stop the build due to this error, then later I am getting a timeout error when it does this command:

Executing task: xonsh /home/steve/Gmbal3/.conf/service-check.xsh registry torizon 22 torizon 10.40.100.5 ‘curl --silent --max-time 5 http://localhost:5002/v2/_catalog

it looks like it is talking to my device and asking for the registry info. There is no registry info on the device, only images.

Steve

Hi, I’m the Toradex AI Assistant.

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


This is a common Docker platform architecture issue when cross-compiling for ARM64 targets. The error indicates that the torizonextras/ide-port-tunnel:0.0.0 image was built only for AMD64 architecture but you’re trying to use it in an ARM64 build context (1).

Solution Steps

1. Enable ARM Emulation

First, ensure ARM emulation is properly configured on your development host (1):

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

(1)

2. Explicitly Specify Platform

When building containers for ARM64, you need to explicitly specify the platform (2). You can do this in two ways:

Option A: Command Line

docker build --platform linux/arm64 .

(2)

Option B: In Dockerfile

FROM --platform=linux/arm64 torizon/debian:4

(2)

3. Clear Docker Cache

Remove any cached AMD64 versions of the problematic image:

docker image rm torizonextras/ide-port-tunnel:0.0.0
docker system prune -f

4. Verify Multi-Architecture Support

The torizonextras/ide-port-tunnel image may not have ARM64 support. You can check available architectures by pulling with explicit platform specification (3):

docker pull --platform=linux/arm64 torizonextras/ide-port-tunnel:0.0.0

Platform Architecture Guidelines

When cross-compiling on a development host for Toradex modules, always specify the target platform (2):

  • For ARM64 modules (iMX8, AM62, AM69, iMX95): Use --platform linux/arm64
  • For ARM32 modules (iMX6/7): Use --platform linux/arm/v7

The Torizon containers are built for specific architectures, and when pulling images on a development host, Docker’s automatic architecture selection may not match your target (3).

IDE Extension Considerations

If you’re using the Torizon IDE Extension, check your project configuration to ensure the target architecture is correctly set to ARM64. The extension should handle platform specification automatically, but configuration resets can cause it to default back to AMD64.

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

This results in an issue:

Unable to find image ‘torizon/binfmt:latest’ locally
latest: Pulling from torizon/binfmt
8aabc323a91f: Pull complete
26b478ce1ac7: Pull complete
06f8d3fb0cee: Pull complete
Digest: sha256:4341763f8efc917a9ca02dfb9f6f0fdf53116a6358dcab0b363a03c6a0f69788
Status: Downloaded newer image for torizon/binfmt:latest
WARNING: image with reference torizon/binfmt:latest was found but its platform (linux/amd64) does not match the specified platform (linux/arm64)
docker: Error response from daemon: image with reference torizon/binfmt was found but its platform (linux/amd64) does not match the specified platform (linux/arm64)

This error confirms you’re experiencing the same platform mismatch issue. The torizon/binfmt container itself is being pulled for AMD64 architecture when your Docker environment is set to expect ARM64 (1).

Solution: Reset Docker Platform Context

The issue is that your Docker environment has been configured to expect ARM64 architecture, but the torizon/binfmt container (which enables ARM emulation) is only available for AMD64. Here’s how to fix this:

1. Clear Docker Platform Context

First, reset your Docker environment to use the native platform:

unset DOCKER_DEFAULT_PLATFORM
docker context use default

2. Run ARM Emulation Setup on Native Platform

Now run the ARM emulation setup without platform specification (1):

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

This command should work because it will run on your native AMD64 development machine and install the ARM emulation support.

3. Verify ARM Emulation is Working

Test that ARM emulation is properly enabled (1):

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

Expected output: armv7l

docker run --rm -it --pull always --platform linux/arm64/v8 debian arch

Expected output: aarch64

4. Check for Docker Desktop Settings

If you’re using Docker Desktop, there’s a known issue with the “Use containerd for pulling and storing images” setting (2). In Docker Desktop settings:

  • Go to General settings
  • Ensure “Use containerd for pulling and storing images” is unchecked
  • Restart Docker Desktop if you made changes

5. Re-enable ARM Emulation After Reboot

Remember that ARM emulation is not persistent (1). After each system reboot, you’ll need to run:

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

The key insight is that the torizon/binfmt container must run on your native AMD64 platform to install ARM emulation support, but once installed, you can then build and run ARM64 containers.

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

So, this problem still exists. When I run this command I still get:
WARNING: image with reference torizonextras/ide-port-tunnel:0.0.0 was found but its platform (linux/amd64) does not match the specified platform (linux/arm64)

Steve

I need to be careful to only use information from the sources and not make assumptions.

The warning you’re seeing confirms that the torizonextras/ide-port-tunnel:0.0.0 image is only available for AMD64 architecture and does not have an ARM64 variant. This is the root cause of your issue.

Analysis

The torizonextras/ide-port-tunnel image appears to be a utility container that may not require ARM64 support, as it’s likely designed to run on your development host (AMD64) rather than on the target device (ARM64).

Solutions

1. Use the AMD64 Version on Host

Since this appears to be a development tool that runs on your host machine, you may need to allow it to run as AMD64 even in your ARM64 build context:

docker pull torizonextras/ide-port-tunnel:0.0.0

2. Check if ARM64 Version Exists

Verify what architectures are available for this image:

docker manifest inspect torizonextras/ide-port-tunnel:0.0.0

This will show you all available platforms for the image.

3. Network/Registry Issues

Based on the community discussions, there can be temporary network or registry issues that cause similar errors (1). You might want to:

  • Try pulling again later
  • Clear Docker cache completely:
docker system prune -a
docker pull torizonextras/ide-port-tunnel:0.0.0

4. Alternative Approach

If this is part of your IDE Extension workflow, the container may be intended to run on your development host (AMD64) while your application containers run on ARM64. In this case, you might need to configure your build process to use the AMD64 version for this specific utility container while maintaining ARM64 for your application containers.

Next Steps

Could you clarify:

  • Are you using the Torizon IDE Extension in VS Code?
  • Is this error preventing your actual application build, or just showing as a warning?
  • What specific workflow are you trying to accomplish when this error occurs?

This will help determine if this is a blocking issue or if the AMD64 version of this utility container can be used alongside your ARM64 application build.

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
Yes, I am using the torizon extension in VSCode.
Well, I don’t know. It is failing later when it tries to do this:
Executing task: xonsh /home/steve/Gmbal3/.conf/service-check.xsh registry torizon 22 torizon 10.40.100.5 ‘curl --silent --max-time 5 http://localhost:5002/v2/_catalog

It is basically going to my torizon device and asking the registry for information on the localhost IP, which is not correct. It tries several times at this and this times out.

Steve

I don’t have specific information about the service-check.xsh script or the registry timeout issue you’re experiencing in the available sources.

However, based on your description, it appears there’s a configuration issue where the IDE Extension is trying to check for a local registry (localhost:5002) on your target device (10.40.100.5) instead of your development host.

Potential Solutions

1. Check Local Registry Configuration

The Torizon IDE Extension uses a local registry on your development host for debugging (1). Verify that the local registry is running on your development machine:

docker ps | grep registry

If it’s not running, you can start it with:

docker run -d -p 5002:5000 --name registry registry:2

2. Verify Target Device Configuration

Check your .vscode/settings.json file to ensure the target device IP is correctly configured (2). The settings should look similar to:

{
    "torizon_ip": "10.40.100.5",
    "containers.environment": {
        "DOCKER_HOST": "tcp://10.40.100.5:2375"
    }
}

3. Network Connectivity Issues

The timeout suggests a network connectivity problem. The script is trying to reach localhost:5002 from the target device, but it should be checking the registry on your development host instead.

Next Steps

To better assist you, could you provide:

  • Which Toradex hardware module are you using? (e.g., Verdin iMX8M Plus, Colibri iMX6ULL, Apalis iMX8QP)
  • Which OS/BSP version is installed? (e.g., Torizon OS 7.2.0, BSP 6, Yocto Kirkstone)

If you have access to the device, running tdx-info will give you the exact details: Getting Device Information with Tdx-Info | Toradex Developer Center

This information will help determine if there are platform-specific configuration requirements affecting the registry connectivity.

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
Software summary

Bootloader: U-Boot
Kernel version: 6.6.94-7.3.0-g5a62539de8f9 #1-Torizon SMP PREEMPT Wed Jun 25 09:14: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/5c84b03643fe3e8b7be49b13c2171a7f45d0dce855097b9fafed3f75e9260a47/0
Distro name: NAME=“Torizon OS”
Distro version: VERSION_ID=7.3.0-build.18
Distro variant: VARIANT=“Docker”
Hostname: verdin-imx8mp-15132679

Hardware info

HW model: Toradex Verdin iMX8M Plus WB on Verdin Development Board
Toradex version: 0058 V1.1A
Serial number: 15132679
Processor arch: aarch64