33# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
44# -------------------------------------------------------------------------------------------------------------
55
6- FROM golang:1.22
6+ FROM golang:1.25
77
88# Avoid warnings by switching to noninteractive
99ENV DEBIAN_FRONTEND=noninteractive
@@ -20,7 +20,7 @@ COPY .devcontainer/install-powershell.sh /tmp/install/
2020
2121# Configure apt, install packages and tools
2222RUN /tmp/install/install-powershell.sh \
23- && curl -fsSL https://deb.nodesource.com/setup_20 .x | bash - \
23+ && curl -fsSL https://deb.nodesource.com/setup_24 .x | bash - \
2424 #
2525 # Update and install packages
2626 #
@@ -41,23 +41,11 @@ RUN /tmp/install/install-powershell.sh \
4141 && cd /tmp/gotools \
4242 && GOPATH=/tmp/gotools go install -v golang.org/x/tools/gopls@latest 2>&1 \
4343 && GOPATH=/tmp/gotools go install -v honnef.co/go/tools/cmd/staticcheck@latest \
44- && GOPATH=/tmp/gotools go install -v golang.org/x/tools/cmd/gorename@latest \
4544 && GOPATH=/tmp/gotools go install -v golang.org/x/tools/cmd/goimports@latest \
46- && GOPATH=/tmp/gotools go install -v golang.org/x/tools/cmd/guru@latest \
47- && GOPATH=/tmp/gotools go install -v golang.org/x/lint/golint@latest \
48- && GOPATH=/tmp/gotools go install -v github.com/mdempsky/gocode@latest \
4945 && GOPATH=/tmp/gotools go install -v github.com/haya14busa/goplay/cmd/goplay@latest \
50- && GOPATH=/tmp/gotools go install -v github.com/sqs/goreturns@latest \
5146 && GOPATH=/tmp/gotools go install -v github.com/josharian/impl@latest \
52- && GOPATH=/tmp/gotools go install -v github.com/davidrjenni/reftools/cmd/fillstruct@latest \
53- && GOPATH=/tmp/gotools go install -v github.com/uudashr/gopkgs/v2/cmd/gopkgs@latest \
54- && GOPATH=/tmp/gotools go install -v github.com/ramya-rao-a/go-outline@latest \
55- && GOPATH=/tmp/gotools go install -v github.com/acroca/go-symbols@latest \
56- && GOPATH=/tmp/gotools go install -v github.com/godoctor/godoctor@latest \
57- && GOPATH=/tmp/gotools go install -v github.com/rogpeppe/godef@latest \
58- && GOPATH=/tmp/gotools go install -v github.com/zmb3/gogetdoc@latest \
59- && GOPATH=/tmp/gotools go install -v github.com/fatih/gomodifytags@latest \
60- && GOPATH=/tmp/gotools go install -v github.com/mgechev/revive@latest \
47+ && GOPATH=/tmp/gotools go install -v github.com/fatih/gomodifytags@latest \
48+ && GOPATH=/tmp/gotools go install -v github.com/mgechev/revive@latest \
6149 && GOPATH=/tmp/gotools go install -v github.com/go-delve/delve/cmd/dlv@latest 2>&1 \
6250 #
6351 # Install Go tools
@@ -75,44 +63,36 @@ RUN /tmp/install/install-powershell.sh \
7563 && chmod 0440 /etc/sudoers.d/$USERNAME \
7664 #
7765 # Install Docker CE cli
78- && apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common lsb-release \
79- && curl -fsSL https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]' )/gpg | apt-key add - 2>/dev/null \
80- && add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable" \
66+ && apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release \
67+ && install -m 0755 -d /etc/apt/keyrings \
68+ && curl -fsSL https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]' )/gpg \
69+ | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
70+ && chmod a+r /etc/apt/keyrings/docker.gpg \
71+ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable" \
72+ > /etc/apt/sources.list.d/docker.list \
8173 && apt-get update \
82- && apt-get install -y docker-ce-cli \
83- #
84- # Install Docker Compose
85- && curl -sSL "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose \
86- && chmod +x /usr/local/bin/docker-compose \
74+ && apt-get install -y docker-ce-cli docker-compose-plugin \
8775 #
8876 # Install bash tools
8977 # https://github.com/bats-core/bats-core
90- && npm install -g bats \
78+ # password manager/s: bitwarden
79+ && npm install -g bats @bitwarden/cli \
9180 && apt-get install -y vim jq bash-completion asciinema \
9281 #
9382 # Fish shell
9483 && apt-get install -y fish zsh \
9584 #
85+ # CI/CD tools
86+ && curl -1sLf 'https://dl.cloudsmith.io/public/task/task/setup.deb.sh' | bash \
87+ && echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' > /etc/apt/sources.list.d/goreleaser.list \
88+ && apt-get update \
89+ && apt-get install -y task goreleaser \
90+ #
9691 # Clean up
9792 && apt-get autoremove -y \
9893 && apt-get clean -y \
9994 && rm -rf /var/lib/apt/lists/* /tmp/gotools
10095
101- #
102- # Install password manager/s
103- #
104- RUN curl -sSfL "https://vault.bitwarden.com/download/?app=cli&platform=linux" -o /tmp/bw.zip \
105- && unzip /tmp/bw.zip -d /usr/local/bin/ \
106- && chmod a+x /usr/local/bin/bw \
107- && rm -f /tmp/bw.zip
108-
109- #
110- # Shells
111- #
112- RUN echo "Installing shells" \
113- # Fish shell
114- && apt-get install -y fish zsh
115-
11696
11797# AsciiCinema configuration
11898RUN chown -R $USER_UID:$USER_GID /home/$USERNAME \
@@ -137,18 +117,10 @@ RUN echo "autoload -U compinit; compinit -i" | sudo tee -a /home/$USERNAME/.zshr
137117 # fish config
138118 && sudo mkdir -p /home/$USERNAME/.config/fish/
139119
140- # CI/CD tools
141- RUN cd /tmp \
142- && command -v task || sudo /usr/local/go/bin/go install github.com/go-task/task/v3/cmd/task@latest \
143- && sudo cp /root/go/bin/task /usr/local/bin/ \
144- && sudo /usr/local/go/bin/go install github.com/goreleaser/goreleaser@latest \
145- && sudo cp /root/go/bin/goreleaser /usr/local/bin/
146120
147121# Fix gopath permissions for non-root user
148- RUN sudo chown -R "$USERNAME:$USERNAME" /go
122+ RUN sudo chown -R "$USERNAME:$USERNAME" /go /home/$USERNAME/
149123
150- # Update this to "on" or "off" as appropriate
151- ENV GO111MODULE=auto
152124ENV LANG=C.UTF-8
153125ENV LC_ALL=C.UTF-8
154126
0 commit comments