devcontainers / features

A collection of Dev Container Features managed by Dev Container spec maintainers. See https://github.com/devcontainers/feature-starter to publish your own
https://containers.dev/features
MIT License
911 stars 367 forks source link

[docker-in-docker]: fails for debian:bookworm (arch=arm64) - error: externally-managed-environment #743

Closed fex01 closed 11 months ago

fex01 commented 11 months ago

Error message seems to indicate a Python related problem, but installing a different Python version does not prevent the build failure. Same with different Docker versions. The only change influencing the build success is using either Debian bookworm or bullseye as base image.

Log: see below

...
=> ERROR [dev_containers_target_stage  9/13] RUN --mount=type=bind,from  35.5s
------
 > [dev_containers_target_stage  9/13] RUN --mount=type=bind,from=dev_containers_feature_content_source,source=docker-in-docker_4,target=/tmp/build-features-src/docker-in-docker_4     cp -ar /tmp/build-features-src/docker-in-docker_4 /tmp/dev-container-features  && chmod -R 0755 /tmp/dev-container-features/docker-in-docker_4  && cd /tmp/dev-container-features/docker-in-docker_4  && chmod +x ./devcontainer-features-install.sh  && ./devcontainer-features-install.sh  && rm -rf /tmp/dev-container-features/docker-in-docker_4:
0.113 ===========================================================================
0.113 Feature       : Docker (Docker-in-Docker)
0.113 Description   : Create child containers *inside* a container, independent from the host's docker instance. Installs Docker extension in the container along with needed CLIs.
0.113 Id            : ghcr.io/devcontainers/features/docker-in-docker
0.113 Version       : 2.7.1
0.113 Documentation : https://github.com/devcontainers/features/tree/main/src/docker-in-docker
0.113 Options       :
0.113     VERSION="23.0.7"
0.113     MOBY="true"
0.113     DOCKERDASHCOMPOSEVERSION="v2"
0.113     AZUREDNSAUTODETECTION="false"
0.113     DOCKERDEFAULTADDRESSPOOL="base=192.168.0.0/16,size=24"
0.113     INSTALLDOCKERBUILDX="true"
0.113 ===========================================================================
0.121 Distro codename  'bookworm'  matched filter  'bookworm buster bullseye bionic focal jammy'
0.127 find: '/var/lib/apt/lists/*': No such file or directory
0.127 Running apt-get update...
0.224 Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
0.283 Get:2 http://deb.debian.org/debian bookworm-updates InRelease [52.1 kB]
0.307 Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
0.340 Get:4 http://deb.debian.org/debian bookworm/main arm64 Packages [8681 kB]
0.599 Get:5 http://deb.debian.org/debian bookworm-updates/main arm64 Packages [6408 B]
0.600 Get:6 http://deb.debian.org/debian-security bookworm-security/main arm64 Packages [92.9 kB]
1.325 Fetched 9031 kB in 1s (7688 kB/s)
1.325 Reading package lists...
1.646 Reading package lists...
1.989 Building dependency tree...
2.096 Reading state information...
2.204 apt-transport-https is already the newest version (2.6.1).
2.204 curl is already the newest version (7.88.1-10+deb12u4).
2.204 ca-certificates is already the newest version (20230311).
2.204 gnupg2 is already the newest version (2.2.40-1.1).
2.204 dirmngr is already the newest version (2.2.40-1.1).
2.204 wget is already the newest version (1.21.3-1+b1).
2.204 The following additional packages will be installed:
2.205   libip6tc2 libnetfilter-conntrack3 libnfnetlink0 libnftnl11
2.205 Suggested packages:
2.205   firewalld kmod
2.205 Recommended packages:
2.205   nftables
2.255 The following NEW packages will be installed:
2.255   iptables libip6tc2 libnetfilter-conntrack3 libnfnetlink0 libnftnl11 pigz
2.337 0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
2.337 Need to get 537 kB of archives.
2.337 After this operation, 9377 kB of additional disk space will be used.
2.337 Get:1 http://deb.debian.org/debian bookworm/main arm64 pigz arm64 2.6-1 [56.2 kB]
2.384 Get:2 http://deb.debian.org/debian bookworm/main arm64 libip6tc2 arm64 1.8.9-2 [18.7 kB]
2.387 Get:3 http://deb.debian.org/debian bookworm/main arm64 libnfnetlink0 arm64 1.0.2-2 [14.5 kB]
2.389 Get:4 http://deb.debian.org/debian bookworm/main arm64 libnetfilter-conntrack3 arm64 1.0.9-3 [38.4 kB]
2.393 Get:5 http://deb.debian.org/debian bookworm/main arm64 libnftnl11 arm64 1.2.4-2 [57.6 kB]
2.406 Get:6 http://deb.debian.org/debian bookworm/main arm64 iptables arm64 1.8.9-2 [352 kB]
2.913 Fetched 537 kB in 0s (3071 kB/s)
2.925 Selecting previously unselected package pigz.
(Reading database ... 28277 files and directories currently installed.)
2.942 Preparing to unpack .../0-pigz_2.6-1_arm64.deb ...
2.944 Unpacking pigz (2.6-1) ...
2.968 Selecting previously unselected package libip6tc2:arm64.
2.970 Preparing to unpack .../1-libip6tc2_1.8.9-2_arm64.deb ...
2.973 Unpacking libip6tc2:arm64 (1.8.9-2) ...
2.989 Selecting previously unselected package libnfnetlink0:arm64.
2.991 Preparing to unpack .../2-libnfnetlink0_1.0.2-2_arm64.deb ...
2.993 Unpacking libnfnetlink0:arm64 (1.0.2-2) ...
3.008 Selecting previously unselected package libnetfilter-conntrack3:arm64.
3.010 Preparing to unpack .../3-libnetfilter-conntrack3_1.0.9-3_arm64.deb ...
3.012 Unpacking libnetfilter-conntrack3:arm64 (1.0.9-3) ...
3.030 Selecting previously unselected package libnftnl11:arm64.
3.032 Preparing to unpack .../4-libnftnl11_1.2.4-2_arm64.deb ...
3.034 Unpacking libnftnl11:arm64 (1.2.4-2) ...
3.052 Selecting previously unselected package iptables.
3.054 Preparing to unpack .../5-iptables_1.8.9-2_arm64.deb ...
3.056 Unpacking iptables (1.8.9-2) ...
3.122 Setting up libip6tc2:arm64 (1.8.9-2) ...
3.125 Setting up libnftnl11:arm64 (1.2.4-2) ...
3.130 Setting up pigz (2.6-1) ...
3.133 Setting up libnfnetlink0:arm64 (1.0.2-2) ...
3.138 Setting up libnetfilter-conntrack3:arm64 (1.0.9-3) ...
3.142 Setting up iptables (1.8.9-2) ...
3.149 update-alternatives: using /usr/sbin/iptables-legacy to provide /usr/sbin/iptables (iptables) in auto mode
3.151 update-alternatives: using /usr/sbin/ip6tables-legacy to provide /usr/sbin/ip6tables (ip6tables) in auto mode
3.153 update-alternatives: using /usr/sbin/iptables-nft to provide /usr/sbin/iptables (iptables) in auto mode
3.155 update-alternatives: using /usr/sbin/ip6tables-nft to provide /usr/sbin/ip6tables (ip6tables) in auto mode
3.157 update-alternatives: using /usr/sbin/arptables-nft to provide /usr/sbin/arptables (arptables) in auto mode
3.158 update-alternatives: using /usr/sbin/ebtables-nft to provide /usr/sbin/ebtables (ebtables) in auto mode
3.163 Processing triggers for man-db (2.11.2-2) ...
3.534 Processing triggers for libc-bin (2.36-9+deb12u3) ...
3.561 update-alternatives: using /usr/sbin/iptables-legacy to provide /usr/sbin/iptables (iptables) in manual mode
3.563 update-alternatives: using /usr/sbin/ip6tables-legacy to provide /usr/sbin/ip6tables (ip6tables) in manual mode
3.787 Hit:1 http://deb.debian.org/debian bookworm InRelease
3.811 Hit:2 http://deb.debian.org/debian bookworm-updates InRelease
3.839 Hit:3 http://deb.debian.org/debian-security bookworm-security InRelease
3.934 Get:4 https://packages.microsoft.com/repos/microsoft-debian-bookworm-prod bookworm InRelease [3597 B]
4.004 Get:5 https://packages.microsoft.com/repos/microsoft-debian-bookworm-prod bookworm/main all Packages [342 B]
4.039 Get:6 https://packages.microsoft.com/repos/microsoft-debian-bookworm-prod bookworm/main arm64 Packages [4031 B]
4.047 Fetched 7970 B in 0s (25.0 kB/s)
4.047 Reading package lists...
5.116 engine_version_suffix =23.0.7+azure-debian12u1 
5.116 cli_version_suffix =23.0.7+azure-debian12u1 
5.120 Reading package lists...
5.428 Building dependency tree...
5.507 Reading state information...
5.610 The following additional packages will be installed:
5.610   moby-containerd moby-runc
5.610 Suggested packages:
5.610   aufs-tools cgroupfs-mount | cgroup-lite
5.610 Recommended packages:
5.610   apparmor kmod
5.624 The following NEW packages will be installed:
5.624   moby-buildx moby-cli moby-containerd moby-engine moby-runc
6.948 0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
6.948 Need to get 91.5 MB of archives.
6.948 After this operation, 296 MB of additional disk space will be used.
6.948 Get:1 https://packages.microsoft.com/repos/microsoft-debian-bookworm-prod bookworm/main arm64 moby-buildx arm64 0.11.2+azure-debian12u1 [25.9 MB]
11.48 Get:2 https://packages.microsoft.com/repos/microsoft-debian-bookworm-prod bookworm/main arm64 moby-cli arm64 23.0.7+azure-debian12u1 [11.8 MB]
14.70 Get:3 https://packages.microsoft.com/repos/microsoft-debian-bookworm-prod bookworm/main arm64 moby-runc arm64 1.1.9-debian12u1 [6195 kB]
17.34 Get:4 https://packages.microsoft.com/repos/microsoft-debian-bookworm-prod bookworm/main arm64 moby-containerd arm64 1.6.24-debian12u2 [33.2 MB]
21.92 Get:5 https://packages.microsoft.com/repos/microsoft-debian-bookworm-prod bookworm/main arm64 moby-engine arm64 23.0.7+azure-debian12u1 [14.4 MB]
24.75 Fetched 91.5 MB in 19s (4894 kB/s)
24.76 Selecting previously unselected package moby-buildx.
(Reading database ... 28507 files and directories currently installed.)
24.77 Preparing to unpack .../moby-buildx_0.11.2+azure-debian12u1_arm64.deb ...
24.77 Unpacking moby-buildx (0.11.2+azure-debian12u1) ...
25.22 Selecting previously unselected package moby-cli.
25.22 Preparing to unpack .../moby-cli_23.0.7+azure-debian12u1_arm64.deb ...
25.22 Unpacking moby-cli (23.0.7+azure-debian12u1) ...
25.57 Selecting previously unselected package moby-runc.
25.57 Preparing to unpack .../moby-runc_1.1.9-debian12u1_arm64.deb ...
25.57 Unpacking moby-runc (1.1.9-debian12u1) ...
25.64 Selecting previously unselected package moby-containerd.
25.65 Preparing to unpack .../moby-containerd_1.6.24-debian12u2_arm64.deb ...
25.65 Unpacking moby-containerd (1.6.24-debian12u2) ...
26.05 Selecting previously unselected package moby-engine.
26.06 Preparing to unpack .../moby-engine_23.0.7+azure-debian12u1_arm64.deb ...
26.06 Unpacking moby-engine (23.0.7+azure-debian12u1) ...
26.50 Setting up moby-buildx (0.11.2+azure-debian12u1) ...
26.51 Setting up moby-runc (1.1.9-debian12u1) ...
26.51 Setting up moby-cli (23.0.7+azure-debian12u1) ...
26.53 Adding group `docker' (GID 103) ...
26.54 Done.
26.54 Setting up moby-containerd (1.6.24-debian12u2) ...
26.61 Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.
26.62 System has not been booted with systemd as init system (PID 1). Can't operate.
26.62 Failed to connect to bus: Host is down
26.63 /usr/sbin/policy-rc.d returned 101, not running 'start containerd'
26.63 Setting up moby-engine (23.0.7+azure-debian12u1) ...
26.70 Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
26.77 Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
26.77 Processing triggers for man-db (2.11.2-2) ...
26.97 Reading package lists...
27.30 Building dependency tree...
27.39 Reading state information...
27.50 The following NEW packages will be installed:
27.50   moby-compose
28.85 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
28.85 Need to get 15.9 MB of archives.
28.85 After this operation, 58.1 MB of additional disk space will be used.
28.85 Get:1 https://packages.microsoft.com/repos/microsoft-debian-bookworm-prod bookworm/main arm64 moby-compose arm64 2.23.0-debian12u1 [15.9 MB]
31.66 Fetched 15.9 MB in 4s (4287 kB/s)
31.69 Selecting previously unselected package moby-compose.
(Reading database ... 28574 files and directories currently installed.)
31.70 Preparing to unpack .../moby-compose_2.23.0-debian12u1_arm64.deb ...
31.70 Unpacking moby-compose (2.23.0-debian12u1) ...
31.92 Setting up moby-compose (2.23.0-debian12u1) ...
31.94 Finished installing docker / moby!
31.95 Reading package lists...
32.27 Building dependency tree...
32.35 Reading state information...
32.44 python3-minimal is already the newest version (3.11.2-1+b1).
32.44 python3-minimal set to manually installed.
32.44 The following additional packages will be installed:
32.44   python3-distutils python3-lib2to3 python3-pip-whl python3-setuptools
32.44   python3-setuptools-whl python3-wheel python3.11-venv
32.44 Suggested packages:
32.44   python-setuptools-doc
32.44 Recommended packages:
32.44   python3-dev
32.51 The following NEW packages will be installed:
32.51   libffi-dev python3-distutils python3-lib2to3 python3-pip python3-pip-whl
32.51   python3-setuptools python3-setuptools-whl python3-venv python3-wheel
32.51   python3.11-venv
32.59 0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
32.59 Need to get 4976 kB of archives.
32.59 After this operation, 14.1 MB of additional disk space will be used.
32.59 Get:1 http://deb.debian.org/debian bookworm/main arm64 libffi-dev arm64 3.4.4-1 [56.0 kB]
32.65 Get:2 http://deb.debian.org/debian bookworm/main arm64 python3-lib2to3 all 3.11.2-3 [76.3 kB]
32.65 Get:3 http://deb.debian.org/debian bookworm/main arm64 python3-distutils all 3.11.2-3 [131 kB]
32.68 Get:4 http://deb.debian.org/debian bookworm/main arm64 python3-setuptools all 66.1.1-1 [521 kB]
32.70 Get:5 http://deb.debian.org/debian bookworm/main arm64 python3-wheel all 0.38.4-2 [30.8 kB]
32.70 Get:6 http://deb.debian.org/debian bookworm/main arm64 python3-pip all 23.0.1+dfsg-1 [1325 kB]
32.73 Get:7 http://deb.debian.org/debian bookworm/main arm64 python3-pip-whl all 23.0.1+dfsg-1 [1717 kB]
32.75 Get:8 http://deb.debian.org/debian bookworm/main arm64 python3-setuptools-whl all 66.1.1-1 [1111 kB]
32.76 Get:9 http://deb.debian.org/debian bookworm/main arm64 python3.11-venv arm64 3.11.2-6 [5892 B]
32.76 Get:10 http://deb.debian.org/debian bookworm/main arm64 python3-venv arm64 3.11.2-1+b1 [1200 B]
33.15 Fetched 4976 kB in 0s (20.9 MB/s)
33.16 Selecting previously unselected package libffi-dev:arm64.
(Reading database ... 28579 files and directories currently installed.)
33.17 Preparing to unpack .../0-libffi-dev_3.4.4-1_arm64.deb ...
33.17 Unpacking libffi-dev:arm64 (3.4.4-1) ...
33.19 Selecting previously unselected package python3-lib2to3.
33.20 Preparing to unpack .../1-python3-lib2to3_3.11.2-3_all.deb ...
33.20 Unpacking python3-lib2to3 (3.11.2-3) ...
33.22 Selecting previously unselected package python3-distutils.
33.22 Preparing to unpack .../2-python3-distutils_3.11.2-3_all.deb ...
33.22 Unpacking python3-distutils (3.11.2-3) ...
33.25 Selecting previously unselected package python3-setuptools.
33.25 Preparing to unpack .../3-python3-setuptools_66.1.1-1_all.deb ...
33.25 Unpacking python3-setuptools (66.1.1-1) ...
33.30 Selecting previously unselected package python3-wheel.
33.30 Preparing to unpack .../4-python3-wheel_0.38.4-2_all.deb ...
33.30 Unpacking python3-wheel (0.38.4-2) ...
33.32 Selecting previously unselected package python3-pip.
33.32 Preparing to unpack .../5-python3-pip_23.0.1+dfsg-1_all.deb ...
33.32 Unpacking python3-pip (23.0.1+dfsg-1) ...
33.42 Selecting previously unselected package python3-pip-whl.
33.42 Preparing to unpack .../6-python3-pip-whl_23.0.1+dfsg-1_all.deb ...
33.42 Unpacking python3-pip-whl (23.0.1+dfsg-1) ...
33.50 Selecting previously unselected package python3-setuptools-whl.
33.50 Preparing to unpack .../7-python3-setuptools-whl_66.1.1-1_all.deb ...
33.50 Unpacking python3-setuptools-whl (66.1.1-1) ...
33.55 Selecting previously unselected package python3.11-venv.
33.55 Preparing to unpack .../8-python3.11-venv_3.11.2-6_arm64.deb ...
33.55 Unpacking python3.11-venv (3.11.2-6) ...
33.57 Selecting previously unselected package python3-venv.
33.57 Preparing to unpack .../9-python3-venv_3.11.2-1+b1_arm64.deb ...
33.57 Unpacking python3-venv (3.11.2-1+b1) ...
33.59 Setting up python3-setuptools-whl (66.1.1-1) ...
33.59 Setting up python3-pip-whl (23.0.1+dfsg-1) ...
33.60 Setting up libffi-dev:arm64 (3.4.4-1) ...
33.60 Setting up python3-lib2to3 (3.11.2-3) ...
33.66 Setting up python3-distutils (3.11.2-3) ...
33.73 Setting up python3-setuptools (66.1.1-1) ...
33.99 Setting up python3-wheel (0.38.4-2) ...
34.06 Setting up python3.11-venv (3.11.2-6) ...
34.09 Setting up python3-pip (23.0.1+dfsg-1) ...
34.64 Setting up python3-venv (3.11.2-1+b1) ...
34.64 Processing triggers for man-db (2.11.2-2) ...
35.22 error: externally-managed-environment
35.22 
35.22 × This environment is externally managed
35.22 ╰─> To install Python packages system-wide, try apt install
35.22     python3-xyz, where xyz is the package you are trying to
35.22     install.
35.22     
35.22     If you wish to install a non-Debian-packaged Python package,
35.22     create a virtual environment using python3 -m venv path/to/venv.
35.22     Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
35.22     sure you have python3-full installed.
35.22     
35.22     If you wish to install a non-Debian packaged Python application,
35.22     it may be easiest to use pipx install xyz, which will manage a
35.22     virtual environment for you. Make sure you have pipx installed.
35.22     
35.22     See /usr/share/doc/python3.11/README.venv for more information.
35.22 
35.22 note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
35.22 hint: See PEP 668 for the detailed specification.
35.25 ERROR: Feature "Docker (Docker-in-Docker)" (ghcr.io/devcontainers/features/docker-in-docker) failed to install! Look at the documentation at https://github.com/devcontainers/features/tree/main/src/docker-in-docker for help troubleshooting this error.
------
Dockerfile.extended:60
--------------------
  59 |     ENV DOCKER_BUILDKIT="1"
  60 | >>> RUN --mount=type=bind,from=dev_containers_feature_content_source,source=docker-in-docker_4,target=/tmp/build-features-src/docker-in-docker_4 \
  61 | >>>     cp -ar /tmp/build-features-src/docker-in-docker_4 /tmp/dev-container-features \
  62 | >>>  && chmod -R 0755 /tmp/dev-container-features/docker-in-docker_4 \
  63 | >>>  && cd /tmp/dev-container-features/docker-in-docker_4 \
  64 | >>>  && chmod +x ./devcontainer-features-install.sh \
  65 | >>>  && ./devcontainer-features-install.sh \
  66 | >>>  && rm -rf /tmp/dev-container-features/docker-in-docker_4
  67 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c cp -ar /tmp/build-features-src/docker-in-docker_4 /tmp/dev-container-features  && chmod -R 0755 /tmp/dev-container-features/docker-in-docker_4  && cd /tmp/dev-container-features/docker-in-docker_4  && chmod +x ./devcontainer-features-install.sh  && ./devcontainer-features-install.sh  && rm -rf /tmp/dev-container-features/docker-in-docker_4" did not complete successfully: exit code: 1
[46389 ms] Error: Command failed: docker buildx build --load --build-context dev_containers_feature_content_source=/var/folders/nv/pp7kflls789brz1v4r63sxhw0000gn/T/devcontainercli/container-features/0.51.3-1699091520598 --build-arg _DEV_CONTAINERS_BASE_IMAGE=mcr.microsoft.com/devcontainers/base:bookworm --build-arg _DEV_CONTAINERS_IMAGE_USER=root --build-arg _DEV_CONTAINERS_FEATURE_CONTENT_SOURCE=dev_container_feature_content_temp --target dev_containers_target_stage -t vsc-thesis-poc-acefe16760dabd34d37238f2b9cdf83226b6333c862f8eeb8c92b82918d27991-features -f /var/folders/nv/pp7kflls789brz1v4r63sxhw0000gn/T/devcontainercli/container-features/0.51.3-1699091520598/Dockerfile.extended /Users/felix/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data/empty-folder
[46389 ms]     at IAA (/Users/felix/.vscode/extensions/ms-vscode-remote.remote-containers-0.315.1/dist/spec-node/devContainersSpecCLI.js:462:1066)
[46389 ms]     at SK (/Users/felix/.vscode/extensions/ms-vscode-remote.remote-containers-0.315.1/dist/spec-node/devContainersSpecCLI.js:462:1002)
[46389 ms]     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[46389 ms]     at async SAA (/Users/felix/.vscode/extensions/ms-vscode-remote.remote-containers-0.315.1/dist/spec-node/devContainersSpecCLI.js:479:3660)
[46389 ms]     at async GC (/Users/felix/.vscode/extensions/ms-vscode-remote.remote-containers-0.315.1/dist/spec-node/devContainersSpecCLI.js:479:4775)
[46389 ms]     at async ZeA (/Users/felix/.vscode/extensions/ms-vscode-remote.remote-containers-0.315.1/dist/spec-node/devContainersSpecCLI.js:611:12251)
[46389 ms]     at async VeA (/Users/felix/.vscode/extensions/ms-vscode-remote.remote-containers-0.315.1/dist/spec-node/devContainersSpecCLI.js:611:11992)
[46392 ms] Exit code 1
...

EDIT: Container definition in question: https://github.com/fex01/thesis-ws/blob/main/.devcontainer/devcontainer.json

samruddhikhandale commented 11 months ago

Hi 👋

Thanks for opening the issue, this looks related to https://github.com/devcontainers/features/issues/577 I should be able to fix the root cause soon.

Closing this as duplicate, feel free to use https://github.com/devcontainers/features/issues/577 for tracking.

samruddhikhandale commented 11 months ago

@fex01 Can you try removing the version property in here and try again? That should help you get unblocked in the meanwhile, thanks!

Docker v2 should work fine with Debain:bookworm. This worked for me 👇

{
    "image": "mcr.microsoft.com/devcontainers/base:bookworm",
    "features": {
        "ghcr.io/devcontainers/features/docker-in-docker:2": {
            "dockerDashComposeVersion": "v2"
        }
    }
}