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:
/tmp/apt-dpkg-install-8EbM7S/168-libgl-vivante1_6.2.4.p4.8-1_arm64.deb
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.
FROM torizon/arm64v8-debian-weston-vivante:buster
RUN apt-get -y update && apt-get install -y \
dialog
RUN apt-get install -y \
python3-pyqt5 \
python3-pip \
python3-opencv \
python3-setuptools \
python3-numpy \
python3-toml \
qtwayland5
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.
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.
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 statement:
FROM --platform=linux/arm torizon/debian:1-buster (for arm32 variant)
or 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 --platform flag.