Skip to content

Commit 82ab2af

Browse files
Upgrade devcontainer support for docker-in-docker (#4921)
* Remove use of software-properties-common * Use latest docker-in-docker script * Address lint issue * Fix devcontainer configuration for docker-in-docker - Add --privileged flag required by new docker-in-docker script - Remove conflicting docker socket mount (docker-from-docker pattern) - Fix VS Code setting for source.organizeImports - Ensure proper docker-in-docker functionality with filesystem mounts The new docker-in-docker script requires privileged access to mount /sys/kernel/security and /tmp, and conflicts with the docker-from-docker socket mounting approach. * Revert to docker-from-docker for CI compatibility - Remove docker-in-docker setup and revert to docker-from-docker pattern - Install Docker CLI only (not daemon) for shared socket usage - Remove --privileged requirement from devcontainer config - Restore docker socket mount for CI workflow compatibility - Remove unused docker-in-docker library scripts This fixes CI failures where containers were exiting due to missing privileges required by docker-in-docker, while maintaining the upgraded Docker CLI installation approach. * Consolidate apt updates * Downgrade az
1 parent 0743cb4 commit 82ab2af

File tree

4 files changed

+17
-201
lines changed

4 files changed

+17
-201
lines changed

.devcontainer/Dockerfile

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,23 @@
44
FROM mcr.microsoft.com/devcontainers/go:1.24
55

66
# https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
7+
78
ARG TARGETARCH
89

910
# APT dependencies
11+
# including docker-cli for docker-from-docker pattern
12+
# and az-cli for interacting with azure resources
1013
ENV DEBIAN_FRONTEND=noninteractive
11-
RUN apt-get update \
12-
&& apt-get -y install --no-install-recommends bash-completion software-properties-common lsb-release graphviz zip nodejs npm python3-pip \
14+
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
15+
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list \
16+
&& apt-get update \
17+
&& apt-get -y install --no-install-recommends bash-completion lsb-release graphviz zip nodejs npm python3-pip docker-ce-cli docker-compose-plugin\
1318
# install az-cli
14-
&& curl -sL https://aka.ms/InstallAzureCLIDeb | bash -
15-
16-
# install docker
17-
# - not yet needed?
18-
# RUN curl -fsSL https://get.docker.com | sh -
19-
# RUN usermod -aG docker vscode
19+
&& curl -sL https://aka.ms/InstallAzureCLIDeb | bash - \
20+
# Temporary fix to avoid regression in v2.77
21+
&& apt-get remove azure-cli --assume-yes \
22+
&& apt-get -y install azure-cli=2.76.0-1~bookworm \
23+
&& rm -rf /var/lib/apt/lists/*
2024

2125
COPY install-dependencies.sh .
2226
RUN ./install-dependencies.sh devcontainer && rm install-dependencies.sh
@@ -44,13 +48,7 @@ RUN curl -sL "https://raw.githubusercontent.com/go-task/task/v3.2.0/completion/b
4448

4549
ENV KIND_CLUSTER_NAME=aso
4650

47-
# install docker, from: https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/docker.md
48-
COPY library-scripts/docker-debian.sh /tmp/library-scripts/
49-
50-
# these are all the default values except for the last one (USE_MOBY) which is what we want to set.
51-
# currently packages.microsoft.com does not have Moby packages for Debian Bullseye, which the
52-
# devcontainer image is based on: https://github.com/microsoft/vscode-dev-containers/issues/1008
53-
RUN bash /tmp/library-scripts/docker-debian.sh true /var/run/docker-host.sock /var/run/docker.sock automatic false
51+
# Add user to docker group for docker socket access
52+
RUN groupadd -f docker && usermod -aG docker vscode
5453

55-
ENTRYPOINT ["/usr/local/share/docker-init.sh"]
5654
CMD ["sleep", "infinity"]

.devcontainer/devcontainer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"editor.snippetSuggestions": "none",
3636
"editor.formatOnSave": true,
3737
"editor.codeActionsOnSave": {
38-
"source.organizeImports": true
38+
"source.organizeImports": "explicit"
3939
}
4040
}
4141
}
@@ -51,7 +51,7 @@
5151

5252
"remoteUser": "vscode",
5353

54-
// to allow docker use from inside container: https://github.com/microsoft/vscode-dev-containers/tree/main/containers/docker-from-docker
54+
// Use docker-from-docker: mount host docker socket for CI compatibility
5555
"mounts": [ "source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind" ],
5656
"overrideCommand": false
5757
}

.devcontainer/library-scripts/docker-debian.sh

Lines changed: 0 additions & 182 deletions
This file was deleted.

v2/internal/testcommon/kube_test_context_envtest.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ import (
5454
)
5555

5656
func getRoot() (string, error) {
57-
cmd := exec.Command("git", "rev-parse", "--show-toplevel")
57+
cmd := exec.CommandContext(context.Background(), "git", "rev-parse", "--show-toplevel")
5858
out, err := cmd.Output()
5959
if err != nil {
6060
return "", eris.Wrapf(err, "failed to get root directory")

0 commit comments

Comments
 (0)