arm64 multi-arch docker build fails on apt update

I'm trying to create a multi-arch container based on ubuntu 20.04. Docker build fails on apt update after the new architecture is added. This is my docker file so far:

# base image FROM ubuntu:20.04 # create user RUN useradd -rm -d /home/embed -s /bin/bash -g root -G sudo -u 1001 embed RUN mkdir -p /home/embed/software RUN mkdir -p /home/embed/data # symlink python3 to python RUN ln -s /usr/bin/python3 /usr/bin/python # install arm64 cross-compilation toolchain RUN dpkg --add-architecture arm64 RUN apt-get update ... 

After it reaches apt-get update, I get the following output:

Hit:1 focal-security InRelease Hit:2 focal InRelease Hit:3 focal-updates InRelease Hit:4 focal-backports InRelease Ign:5 focal-security/main arm64 Packages Ign:6 focal-security/restricted arm64 Packages Ign:7 focal-security/universe arm64 Packages Ign:5 focal-security/main arm64 Packages Ign:6 focal-security/restricted arm64 Packages Ign:7 focal-security/universe arm64 Packages Ign:8 focal/multiverse arm64 Packages Ign:5 focal-security/main arm64 Packages Ign:6 focal-security/restricted arm64 Packages Ign:7 focal-security/universe arm64 Packages Ign:9 focal/restricted arm64 Packages Ign:10 focal/universe arm64 Packages Ign:11 focal/main arm64 Packages Ign:8 focal/multiverse arm64 Packages Ign:9 focal/restricted arm64 Packages Ign:10 focal/universe arm64 Packages Ign:5 focal-security/main arm64 Packages Ign:6 focal-security/restricted arm64 Packages Ign:7 focal-security/universe arm64 Packages Ign:5 focal-security/main arm64 Packages Ign:11 focal/main arm64 Packages Ign:12 focal-updates/universe arm64 Packages Ign:13 focal-updates/main arm64 Packages Ign:14 focal-updates/multiverse arm64 Packages Ign:15 focal-updates/restricted arm64 Packages Ign:8 focal/multiverse arm64 Packages Ign:9 focal/restricted arm64 Packages Ign:6 focal-security/restricted arm64 Packages Ign:7 focal-security/universe arm64 Packages Err:5 focal-security/main arm64 Packages 404 Not Found [IP: 91.189.88.142 80] Ign:6 focal-security/restricted arm64 Packages Ign:10 focal/universe arm64 Packages Ign:11 focal/main arm64 Packages Ign:12 focal-updates/universe arm64 Packages Ign:13 focal-updates/main arm64 Packages Ign:14 focal-updates/multiverse arm64 Packages Ign:15 focal-updates/restricted arm64 Packages Ign:8 focal/multiverse arm64 Packages Ign:9 focal/restricted arm64 Packages Ign:16 focal-backports/universe arm64 Packages Ign:10 focal/universe arm64 Packages Ign:11 focal/main arm64 Packages Ign:12 focal-updates/universe arm64 Packages Ign:13 focal-updates/main arm64 Packages Ign:14 focal-updates/multiverse arm64 Packages Ign:15 focal-updates/restricted arm64 Packages Ign:7 focal-security/universe arm64 Packages Ign:8 focal/multiverse arm64 Packages Ign:9 focal/restricted arm64 Packages Ign:16 focal-backports/universe arm64 Packages Ign:10 focal/universe arm64 Packages Ign:11 focal/main arm64 Packages Ign:12 focal-updates/universe arm64 Packages Ign:13 focal-updates/main arm64 Packages Ign:14 focal-updates/multiverse arm64 Packages Ign:15 focal-updates/restricted arm64 Packages Err:8 focal/multiverse arm64 Packages 404 Not Found [IP: 91.189.88.142 80] Ign:9 focal/restricted arm64 Packages Ign:16 focal-backports/universe arm64 Packages Ign:10 focal/universe arm64 Packages Ign:11 focal/main arm64 Packages Ign:12 focal-updates/universe arm64 Packages Ign:13 focal-updates/main arm64 Packages Ign:14 focal-updates/multiverse arm64 Packages Ign:15 focal-updates/restricted arm64 Packages Ign:16 focal-backports/universe arm64 Packages Err:12 focal-updates/universe arm64 Packages 404 Not Found [IP: 91.189.88.142 80] Ign:13 focal-updates/main arm64 Packages Ign:14 focal-updates/multiverse arm64 Packages Ign:15 focal-updates/restricted arm64 Packages Ign:16 focal-backports/universe arm64 Packages Err:16 focal-backports/universe arm64 Packages 404 Not Found [IP: 91.189.88.142 80] Reading package lists... E: Failed to fetch 404 Not Found [IP: 91.189.88.142 80] E: Failed to fetch 404 Not Found [IP: 91.189.88.142 80] E: Failed to fetch 404 Not Found [IP: 91.189.88.142 80] E: Failed to fetch 404 Not Found [IP: 91.189.88.142 80] E: Some index files failed to download. They have been ignored, or old ones used instead. The command '/bin/sh -c apt-get update' returned a non-zero code: 100 

It seems that all arm64 repositories are either ignored or not found. I found this question that has the exact same problem, but no solution is provided.

Do I have to arch-qualify all the apt sources before doing an apt-update like this answer says? Is there a more automatic way that suits building a docker image?

Thanks in advance

2

1 Answer

I still don't know if there's a better way of doing this but I basically did what's done here, but for 20.04. The Dockerfile is now:

# base image FROM ubuntu:20.04 ... # add arm64 architecture RUN apt-get update RUN dpkg --add-architecture arm64 ## arch-qualify the current repositories RUN sed -i "s/deb h/deb [arch=amd64] h/g" /etc/apt/sources.list ## add arm64's repos RUN echo "# arm64 repositories" >> /etc/apt/sources.list RUN echo "deb [arch=arm64] focal main restricted" >> /etc/apt/sources.list RUN echo "deb [arch=arm64] focal-updates main restricted" >> /etc/apt/sources.list RUN echo "deb [arch=arm64] focal universe" >> /etc/apt/sources.list RUN echo "deb [arch=arm64] focal-updates universe" >> /etc/apt/sources.list RUN echo "deb [arch=arm64] focal multiverse" >> /etc/apt/sources.list RUN echo "deb [arch=arm64] focal-updates multiverse" >> /etc/apt/sources.list RUN echo "deb [arch=arm64] focal-backports main restricted universe multiverse" >> /etc/apt/sources.list RUN echo "deb [arch=arm64] focal-security main restricted" >> /etc/apt/sources.list RUN echo "deb [arch=arm64] focal-security universe" >> /etc/apt/sources.list RUN echo "deb [arch=arm64] focal-security multiverse" >> /etc/apt/sources.list RUN apt-get update ... 
1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like