Skip to content

Bug: BUILD_IN_DOCKER in Makefile on WSL not working as intended / breaking the build #20636

@darthdrannel

Description

@darthdrannel

Description

When building RIOT in WSL with BUILD_IN_DOCKER=1 in the Makefile, the build fails.

Steps to reproduce the issue

Expected results

The build completes as if make BUILD_IN_DOCKER=1 all was run without the Makefile addition, with example output:

user@Device:~/RIOT/examples/hello-world$ make BUILD_IN_DOCKER=1 all
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Launching build container using image "docker.io/riot/riotbuild:latest".
docker run --rm --tty --userns keep-id -v '/usr/share/zoneinfo/Europe/Berlin:/etc/localtime:ro' -v '/home/user/RIOT:/data/riotbuild/riotbase:delegated' -v '/home/user/.cargo/registry:/data/riotbuild/.cargo/registry:delegated' -v '/home/user/.cargo/git:/data/riotbuild/.cargo/git:delegated' -e 'RIOTBASE=/data/riotbuild/riotbase' -e 'CCACHE_BASEDIR=/data/riotbuild/riotbase' -e 'BUILD_DIR=/data/riotbuild/riotbase/build' -e 'RIOTPROJECT=/data/riotbuild/riotbase' -e 'RIOTCPU=/data/riotbuild/riotbase/cpu' -e 'RIOTBOARD=/data/riotbuild/riotbase/boards' -e 'RIOTMAKE=/data/riotbuild/riotbase/makefiles'       -e 'DISABLE_MODULE=' -e 'DEFAULT_MODULE=' -e 'FEATURES_REQUIRED=' -e 'FEATURES_BLACKLIST=' -e 'FEATURES_OPTIONAL=' -e 'USEMODULE=' -e 'USEPKG='  -w '/data/riotbuild/riotbase/examples/hello-world/' 'docker.io/riot/riotbuild:latest' make     all
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Building application "hello-world" for "native" with CPU "native".

"make" -C /data/riotbuild/riotbase/boards/common/init
"make" -C /data/riotbuild/riotbase/boards/native
"make" -C /data/riotbuild/riotbase/boards/native/drivers
"make" -C /data/riotbuild/riotbase/core
"make" -C /data/riotbuild/riotbase/core/lib
"make" -C /data/riotbuild/riotbase/cpu/native
"make" -C /data/riotbuild/riotbase/cpu/native/periph
"make" -C /data/riotbuild/riotbase/cpu/native/stdio_native
"make" -C /data/riotbuild/riotbase/drivers
"make" -C /data/riotbuild/riotbase/drivers/periph_common
"make" -C /data/riotbuild/riotbase/sys
"make" -C /data/riotbuild/riotbase/sys/auto_init
"make" -C /data/riotbuild/riotbase/sys/libc
"make" -C /data/riotbuild/riotbase/sys/preprocessor
   text    data     bss     dec     hex filename
  27544     552   47840   75936   128a0 /data/riotbuild/riotbase/examples/hello-world/bin/native/hello-world.elf

Actual results

Build fails with output:

user@Device:~/RIOT/examples/hello-world$ make BUILD_IN_DOCKER=1 all
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Launching build container using image "docker.io/riot/riotbuild:latest".
docker run --rm --tty --userns keep-id -v '/usr/share/zoneinfo/Europe/Berlin:/etc/localtime:ro' -v '/home/user/RIOT:/data/riotbuild/riotbase:delegated' -v '/home/user/.cargo/registry:/data/riotbuild/.cargo/registry:delegated' -v '/home/user/.cargo/git:/data/riotbuild/.cargo/git:delegated' -e 'RIOTBASE=/data/riotbuild/riotbase' -e 'CCACHE_BASEDIR=/data/riotbuild/riotbase' -e 'BUILD_DIR=/data/riotbuild/riotbase/build' -e 'RIOTPROJECT=/data/riotbuild/riotbase' -e 'RIOTCPU=/data/riotbuild/riotbase/cpu' -e 'RIOTBOARD=/data/riotbuild/riotbase/boards' -e 'RIOTMAKE=/data/riotbuild/riotbase/makefiles'       -e 'DISABLE_MODULE=' -e 'DEFAULT_MODULE=' -e 'FEATURES_REQUIRED=' -e 'FEATURES_BLACKLIST=' -e 'FEATURES_OPTIONAL=' -e 'USEMODULE=' -e 'USEPKG='  -w '/data/riotbuild/riotbase/examples/hello-world/' 'docker.io/riot/riotbuild:latest' make     all
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
/bin/sh: 1: docker: not found
Launching build container using image "docker.io/riot/riotbuild:latest".
docker run --rm --tty --user $(id -u) -v '/usr/share/zoneinfo/Etc/UTC:/etc/localtime:ro' -v '/data/riotbuild/riotbase:/data/riotbuild/riotbase:delegated' -v '/data/riotbuild/.cargo/registry:/data/riotbuild/.cargo/registry:delegated' -v '/data/riotbuild/.cargo/git:/data/riotbuild/.cargo/git:delegated' -e 'RIOTBASE=/data/riotbuild/riotbase' -e 'CCACHE_BASEDIR=/data/riotbuild/riotbase' -e 'BUILD_DIR=/data/riotbuild/riotbase/build' -e 'RIOTPROJECT=/data/riotbuild/riotbase' -e 'RIOTCPU=/data/riotbuild/riotbase/cpu' -e 'RIOTBOARD=/data/riotbuild/riotbase/boards' -e 'RIOTMAKE=/data/riotbuild/riotbase/makefiles'       -e 'DISABLE_MODULE=' -e 'DEFAULT_MODULE=' -e 'FEATURES_REQUIRED=' -e 'FEATURES_BLACKLIST=' -e 'FEATURES_OPTIONAL=' -e 'USEMODULE=' -e 'USEPKG='  -w '/data/riotbuild/riotbase/examples/hello-world/' 'docker.io/riot/riotbuild:latest' make     all
/bin/sh: 1: docker: not found
make: *** [/data/riotbuild/riotbase/makefiles/docker.inc.mk:350: ..in-docker-container] Error 127
make: *** [/home/user/RIOT/makefiles/docker.inc.mk:350: ..in-docker-container] Error 2

Versions

Operating System Environment
-----------------------------
         Operating System: "Ubuntu" "22.04.4 LTS (Jammy Jellyfish)"
                   Kernel: Linux 5.15.146.1-microsoft-standard-WSL2 x86_64 x86_64
             System shell: /usr/bin/dash (probably dash)
             make's shell: /usr/bin/dash (probably dash)

Installed compiler toolchains
-----------------------------
               native gcc: gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
        arm-none-eabi-gcc: arm-none-eabi-gcc (15:10.3-2021.07-4) 10.3.1 20210621 (release)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions