Skip to content

Commit 1c25ec9

Browse files
authored
chore: fix devcontainer build by updating deprecated Go tools (#1384)
Resolves #1347 The devcontainer Dockerfile was using deprecated Go tools and outdated installation methods that caused build failures. This updates it to align with the KEDA core devcontainer configuration. Changes: - Remove deprecated gocode-gomod build (stamblerre/gocode is archived) - Migrate from 'go get' to 'go install' for all Go tools - Remove deprecated tools (guru, mdempsky/gocode, gometalinter, delve) - Update gopkgs to v2 - Pin gopls to v0.18.1 for stability - Remove obsolete GO111MODULE environment variables - Update Docker installation to use modern GPG keyring method - Add --break-system-packages flag for pip (Python 3.11+ compatibility) - Install golangci-lint v2 via go install (using v2 module path) Differences from KEDA devcontainer: - Does not include Protocol Buffer Compiler (protoc) as http-add-on doesn't use protobuf Signed-off-by: Vincent Link <vlink@redhat.com>
1 parent 2520bdd commit 1c25ec9

File tree

2 files changed

+29
-41
lines changed

2 files changed

+29
-41
lines changed

.devcontainer/Dockerfile

Lines changed: 28 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -16,46 +16,33 @@ ARG USERNAME=vscode
1616
ARG USER_UID=1000
1717
ARG USER_GID=$USER_UID
1818

19-
ENV GO111MODULE=auto
20-
2119
# Configure apt, install packages and tools
2220
RUN apt-get update \
2321
&& apt-get -y install --no-install-recommends apt-utils dialog unzip 2>&1 \
2422
#
2523
# Verify git, process tools, lsb-release (common in install instructions for CLIs) installed
2624
&& apt-get -y install git iproute2 procps lsb-release \
2725
#
28-
# Install gocode-gomod
29-
&& go get -x -d github.com/stamblerre/gocode 2>&1 \
30-
&& go build -o gocode-gomod github.com/stamblerre/gocode \
31-
&& mv gocode-gomod $GOPATH/bin/ \
32-
#
3326
# Install Go tools
34-
&& go get -u -v \
35-
github.com/mdempsky/gocode \
36-
github.com/uudashr/gopkgs/cmd/gopkgs \
37-
github.com/ramya-rao-a/go-outline \
38-
github.com/acroca/go-symbols \
39-
github.com/godoctor/godoctor \
40-
golang.org/x/tools/cmd/guru \
41-
golang.org/x/tools/cmd/gorename \
42-
github.com/rogpeppe/godef \
43-
github.com/zmb3/gogetdoc \
44-
github.com/haya14busa/goplay/cmd/goplay \
45-
github.com/sqs/goreturns \
46-
github.com/josharian/impl \
47-
github.com/davidrjenni/reftools/cmd/fillstruct \
48-
github.com/fatih/gomodifytags \
49-
github.com/cweill/gotests/... \
50-
golang.org/x/tools/cmd/goimports \
51-
golang.org/x/lint/golint \
52-
github.com/alecthomas/gometalinter 2>&1 \
53-
github.com/mgechev/revive \
54-
github.com/derekparker/delve/cmd/dlv 2>&1 \
27+
&& go install github.com/uudashr/gopkgs/v2/cmd/gopkgs@latest \
28+
&& go install github.com/ramya-rao-a/go-outline@latest \
29+
&& go install github.com/acroca/go-symbols@latest \
30+
&& go install github.com/godoctor/godoctor@latest \
31+
&& go install golang.org/x/tools/cmd/gorename@latest \
32+
&& go install github.com/rogpeppe/godef@latest \
33+
&& go install github.com/zmb3/gogetdoc@latest \
34+
&& go install github.com/haya14busa/goplay/cmd/goplay@latest \
35+
&& go install github.com/sqs/goreturns@latest \
36+
&& go install github.com/josharian/impl@latest \
37+
&& go install github.com/davidrjenni/reftools/cmd/fillstruct@latest \
38+
&& go install github.com/fatih/gomodifytags@latest \
39+
&& go install github.com/cweill/gotests/...@latest \
40+
&& go install golang.org/x/tools/cmd/goimports@latest \
41+
&& go install golang.org/x/lint/golint@latest \
42+
&& go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest \
43+
&& go install github.com/mgechev/revive@latest \
5544
&& go install honnef.co/go/tools/cmd/staticcheck@latest \
56-
&& go install golang.org/x/tools/gopls@latest \
57-
# Install golangci-lint
58-
&& curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v2.1.0 \
45+
&& go install golang.org/x/tools/gopls@v0.18.1 \
5946
#
6047
# Create a non-root user to use if preferred - see https://aka.ms/vscode-remote/containers/non-root-user.
6148
&& groupadd --gid $USER_GID $USERNAME \
@@ -64,25 +51,26 @@ RUN apt-get update \
6451
&& apt-get install -y sudo \
6552
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
6653
&& chmod 0440 /etc/sudoers.d/$USERNAME \
67-
# Docker install
68-
&& apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common lsb-release \
69-
&& curl -fsSL https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/gpg | apt-key add - 2>/dev/null \
70-
&& add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable" \
71-
&& apt-get update \
54+
# Docker install https://docs.docker.com/engine/install/debian/
55+
&& sudo install -m 0755 -d /etc/apt/keyrings \
56+
&& curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
57+
&& sudo chmod a+r /etc/apt/keyrings/docker.gpg \
58+
&& echo \
59+
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
60+
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
61+
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null \
62+
&& sudo apt-get update \
7263
&& apt-get install -y docker-ce-cli \
7364
#
7465
# Install pip & pre-commit
7566
&& apt-get -y install python3-pip \
76-
&& python3 -m pip install --no-cache-dir pre-commit \
67+
&& python3 -m pip install --no-cache-dir --break-system-packages pre-commit \
7768
#
7869
# Clean up
7970
&& apt-get autoremove -y \
8071
&& apt-get clean -y \
8172
&& rm -rf /var/lib/apt/lists/*
8273

83-
# Enable go modules
84-
ENV GO111MODULE=on
85-
8674
ENV OPERATOR_RELEASE_VERSION=v1.26.0
8775
RUN ARCH=$(case $(uname -m) in x86_64) echo -n amd64 ;; aarch64) echo -n arm64 ;; *) echo -n $(uname -m) ;; esac) \
8876
&& OS=$(uname | awk '{print tolower($0)}') \

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ This changelog keeps track of work items that have been completed and are ready
4343

4444
### Other
4545

46-
- **General**: TODO ([#TODO](https://github.com/kedacore/http-add-on/issues/TODO))
46+
- **DevContainer**: Fix devcontainer build by updating deprecated Go tools ([#1347](https://github.com/kedacore/http-add-on/issues/1347))
4747

4848
## v0.11.1
4949

0 commit comments

Comments
 (0)