k-okada/jsk_robot

`prepare_requirements_ros1.sh` fails with error

Closed this issue · 5 comments

if ! docker buildx > /dev/null; then
DOCKER_BUILDKIT=1 docker build --platform=local -o . "https://github.com/docker/buildx.git"
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
fi

x86のubuntu18.04で実行した際にはここのif文に入れずに,すぐ次のdocker buildx buildコマンドに進んでしまう.

I am sorry for forgetting attaching error messages.
apt-get update fails when docker buildx build ... executes

$ ./prepare_requirements_ros1.sh 
+ docker buildx
+ docker buildx build --progress plain -t ros1-unitree:arm64v8 --build-arg TARGET_MACHINE=arm64v8 -f docker/Dockerfile_ros1 docker/
+ tee arm64v8_prepare_requirements_ros1.log
#1 [internal] load build definition from Dockerfile_ros1
#1 transferring dockerfile: 2.04kB done
#1 DONE 0.0s

#2 [internal] load .dockerignore
#2 transferring context: 2B done
#2 DONE 0.0s

#3 [internal] load metadata for docker.io/arm64v8/ubuntu:bionic
#3 ...

#4 [auth] arm64v8/ubuntu:pull token for registry-1.docker.io
#4 DONE 0.0s

#3 [internal] load metadata for docker.io/arm64v8/ubuntu:bionic
#3 DONE 2.2s

#5 [internal] load build context
#5 transferring context: 19.16kB done
#5 DONE 0.0s

#6 [ 1/26] FROM docker.io/arm64v8/ubuntu:bionic@sha256:6a4619c02fbaf80504f316f42bd4b732831d9590e9c1c0df2b6f294ffbee86c9
#6 resolve docker.io/arm64v8/ubuntu:bionic@sha256:6a4619c02fbaf80504f316f42bd4b732831d9590e9c1c0df2b6f294ffbee86c9 done
#6 sha256:f9ea66feed08210b42684caa0bb96b9804bdc0f1d22aaaa242c7897edf237f7d 1.48kB / 1.48kB done
#6 sha256:8376114ff9b387126c379fb7f6f90b3752e3082ce48b0c727c0e1b683e1244da 0B / 23.73MB 0.1s
#6 sha256:6a4619c02fbaf80504f316f42bd4b732831d9590e9c1c0df2b6f294ffbee86c9 529B / 529B done
#6 sha256:8376114ff9b387126c379fb7f6f90b3752e3082ce48b0c727c0e1b683e1244da 20.97MB / 23.73MB 0.4s
#6 sha256:8376114ff9b387126c379fb7f6f90b3752e3082ce48b0c727c0e1b683e1244da 23.73MB / 23.73MB 0.4s done
#6 extracting sha256:8376114ff9b387126c379fb7f6f90b3752e3082ce48b0c727c0e1b683e1244da 0.1s
#6 extracting sha256:8376114ff9b387126c379fb7f6f90b3752e3082ce48b0c727c0e1b683e1244da 0.4s done
#6 DONE 0.8s

#7 [ 2/26] RUN apt-get update
#7 0.223 exec /bin/sh: no such file or directory
#7 ERROR: executor failed running [/bin/sh -c apt-get update]: exit code: 1
------
 > [ 2/26] RUN apt-get update:
#7 0.223 exec /bin/sh: no such file or directory
------
error: failed to solve: executor failed running [/bin/sh -c apt-get update]: exit code: 1

I tried line12 before ./prepare_requirements_ros1.sh, and then error as I mentioned above did not occur.

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

so, text step is, can we detect if we need to run line12, what is the output of following commands?

$ ls /proc/sys/fs/binfmt_misc/
cli                      qemu-aarch64     qemu-hppa          qemu-mips64el   qemu-ppc64    qemu-sh4eb        register
jar                      qemu-aarch64_be  qemu-m68k          qemu-mipsel     qemu-ppc64le  qemu-sparc        sbcl
llvm-6.0-runtime.binfmt  qemu-alpha       qemu-microblaze    qemu-mipsn32    qemu-riscv32  qemu-sparc32plus  status
python2.7                qemu-arm         qemu-microblazeel  qemu-mipsn32el  qemu-riscv64  qemu-sparc64
python3.6                qemu-armeb       qemu-mips          qemu-or1k       qemu-s390x    qemu-xtensa
python3.8                qemu-hexagon     qemu-mips64        qemu-ppc        qemu-sh4      qemu-xtensaeb
$ docker images | grep multi
multiarch/qemu-user-static        latest                 871019ea8dda        7 months ago        299MB

Output when we need to run line12.
Sorry for update.

 $ ls /proc/sys/fs/binfmt_misc/
cli                      qemu-alpha       qemu-mips64el    qemu-sh4eb
jar                      qemu-arm         qemu-mipsel      qemu-sparc
llvm-6.0-runtime.binfmt  qemu-armeb       qemu-ppc         qemu-sparc32plus
llvm-8-runtime.binfmt    qemu-cris        qemu-ppc64       qemu-sparc64
llvm-9-runtime.binfmt    qemu-m68k        qemu-ppc64abi32  register
python2.7                qemu-microblaze  qemu-ppc64le     sbcl
python3.6                qemu-mips        qemu-s390x       status
qemu-aarch64             qemu-mips64      qemu-sh4               qemu-microblaze  qemu-ppc64le     sbcl
python3.6                qemu-mips        qemu-s390x       status
qemu-aarch64             qemu-mips64      qemu-sh4
$ docker images | grep multi
# no result