When trying to build a docker image based from torizon/arm64v8-debian-weston-vivante:buster i get the following error
Errors were encountered while processing:
E: Sub-process /usr/bin/dpkg returned an error code (1)
Below is the docker file i am using. it was working two months ago roughly.
RUN apt-get -y update && apt-get install -y \
RUN apt-get install -y \
This seems to be a packaging issue on our end. We recently updated the naming scheme we used for our Debian containers. This then triggered rebuilding of these containers on our side. However an unseen side effect of this was that now the containers with the old naming scheme never got updated and has led to packaging issues such as this.
Therefore the fix here would be to change the base container you’re using here to
torizon/weston-vivante:1 which is the equivalent of
torizon/arm64v8-debian-weston-vivante:buster, but under the new naming scheme. Once I did that I was able to build your Dockerfile on my setup.
Also since I noticed you were pulling an OpenCV package, I thought I’d also point you towards our OpenCV example: torizon-samples/opencv at bullseye · toradex/torizon-samples · GitHub
The documentation for it isn’t public yet, but will be soon. Just wanted to share in case you find it useful.
is there a table with the new names ? and how is the architecture selected ?
the documentation here refers to the older names Debian Containers for Torizon | Toradex Developer Center
I believe we’re still in the process of fully documenting this naming change across our existing articles. For the time being the best way to get a full list would be to check the Torizon dockerhub repositories: Docker Hub
As for architecture these new namings also included a change to allow us to have multi-arch containers. Meaning depending on what device you’re pulling the container image to, the right architecture should get pulled. This was a big reason we did the new naming scheme as to compress the amount of containers we had allowing for simpler names and documentation.
if i am building the image on windows x64 and than uploading it to the module. how will it know which arm architecture (32 or 64) to use ?
So there are two points here for the multi-arch containers. First of all any container that is marked “vivante” only has 1 variant, the arm64 variant. Therefore with vivante base containers there’s no risk of using the “wrong” architecture.
For other containers when building on x86 you can specify which architecture you want to use in the “Dockerfile”. So for example if you want to create a container based on our base “debian” container here: Docker Hub
Then you want to add this to your dockerfile in the
FROM --platform=linux/arm torizon/debian:1-buster (for arm32 variant)
FROM --platform=linux/arm64 torizon/debian:1-buster (for arm64 variant)
So basically to summarize you can specify which arch you base it on in the
FROM statement using the
I hope this helps clear things up.
thanks for the explanation that clears things.
Glad I was able to clear things up.