@@ -43,13 +43,13 @@ RUN url="https://github.com/olix0r/j5j/releases/download/${J5J_VERSION}/j5j-${J5
4343
4444# just runs build/test recipes. Like `make` but a bit more ergonomic.
4545FROM apt-base as just
46- ARG JUST_VERSION=1.24 .0
46+ ARG JUST_VERSION=1.37 .0
4747RUN url="https://github.com/casey/just/releases/download/${JUST_VERSION}/just-${JUST_VERSION}-x86_64-unknown-linux-musl.tar.gz" ; \
4848 scurl "$url" | tar zvxf - -C /usr/local/bin just
4949
5050# yq is kind of like jq, but for YAML.
5151FROM apt-base as yq
52- ARG YQ_VERSION=v4.33.3
52+ ARG YQ_VERSION=v4.44.5
5353RUN url="https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64" ; \
5454 scurl -o /yq "$url" && chmod +x /yq
5555
@@ -65,26 +65,26 @@ COPY --link bin/scurl /bin/
6565
6666# helm templates kubernetes manifests.
6767FROM apt-base as helm
68- ARG HELM_VERSION=v3.14.1
68+ ARG HELM_VERSION=v3.16.3
6969RUN url="https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" ; \
7070 scurl "$url" | tar xzvf - --strip-components=1 -C /usr/local/bin linux-amd64/helm
7171
7272
7373# helm-docs generates documentation from helm charts.
7474FROM apt-base as helm-docs
75- ARG HELM_DOCS_VERSION=v1.12.0
75+ ARG HELM_DOCS_VERSION=v1.14.2
7676RUN url="https://github.com/norwoodj/helm-docs/releases/download/$HELM_DOCS_VERSION/helm-docs_${HELM_DOCS_VERSION#v}_Linux_x86_64.tar.gz" ; \
7777 scurl "$url" | tar xzvf - -C /usr/local/bin helm-docs
7878
7979# kubectl controls kubernetes clusters.
8080FROM apt-base as kubectl
81- ARG KUBECTL_VERSION=v1.29.2
81+ ARG KUBECTL_VERSION=v1.31.3
8282RUN url="https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" ; \
8383 scurl -o /usr/local/bin/kubectl "$url" && chmod +x /usr/local/bin/kubectl
8484
8585# k3d runs kubernetes clusters in docker.
8686FROM apt-base as k3d
87- ARG K3D_VERSION=v5.6.0
87+ ARG K3D_VERSION=v5.7.5
8888RUN url="https://raw.githubusercontent.com/rancher/k3d/$K3D_VERSION/install.sh" ; \
8989 scurl "$url" | USE_SUDO=false K3D_INSTALL_DIR=/usr/local/bin bash
9090# just-k3d is a utility that encodes many of the common k3d commands we use.
@@ -96,10 +96,9 @@ COPY --link k3s-images.json "$K3S_IMAGES_JSON"
9696
9797# step is a tool for managing certificates.
9898FROM apt-base as step
99- ARG STEP_VERSION=v0.25.2
100- RUN scurl -O "https://dl.step.sm/gh-release/cli/docs-cli-install/${STEP_VERSION}/step-cli_${STEP_VERSION#v}_amd64.deb" \
101- && dpkg -i "step-cli_${STEP_VERSION#v}_amd64.deb" \
102- && rm "step-cli_${STEP_VERSION#v}_amd64.deb"
99+ ARG STEP_VERSION=v0.28.2
100+ RUN url="https://dl.smallstep.com/gh-release/cli/gh-release-header/${STEP_VERSION}/step_linux_${STEP_VERSION#v}_amd64.tar.gz" ; \
101+ scurl "$url" | tar xzvf - --strip-components=2 -C /usr/local/bin step_"${STEP_VERSION#v}" /bin/step
103102
104103FROM scratch as tools-k8s
105104COPY --link --from=helm /usr/local/bin/helm /bin/
@@ -108,15 +107,15 @@ COPY --link --from=k3d /usr/local/bin/* /bin/
108107ENV K3S_IMAGES_JSON=/etc/k3s-images.json
109108COPY --link --from=k3d /usr/local/etc/k3s-images.json "$K3S_IMAGES_JSON"
110109COPY --link --from=kubectl /usr/local/bin/kubectl /bin/
111- COPY --link --from=step /usr/bin/step-cli /bin/
110+ COPY --link --from=step /usr/local/ bin/step /bin/
112111
113112# #
114113# # Linting tools
115114# #
116115
117116# actionlint lints github actions workflows.
118117FROM apt-base as actionlint
119- ARG ACTIONLINT_VERSION=v1.6.26
118+ ARG ACTIONLINT_VERSION=v1.7.4
120119RUN url="https://github.com/rhysd/actionlint/releases/download/${ACTIONLINT_VERSION}/actionlint_${ACTIONLINT_VERSION#v}_linux_amd64.tar.gz" ; \
121120 scurl "$url" | tar xzvf - -C /usr/local/bin actionlint
122121
@@ -128,7 +127,7 @@ RUN url="https://raw.githubusercontent.com/slimm609/checksec.sh/${CHECKSEC_VERSI
128127
129128# shellcheck lints shell scripts.
130129FROM apt-base as shellcheck
131- ARG SHELLCHECK_VERSION=v0.9 .0
130+ ARG SHELLCHECK_VERSION=v0.10 .0
132131RUN url="https://github.com/koalaman/shellcheck/releases/download/${SHELLCHECK_VERSION}/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" ; \
133132 scurl "$url" | tar xJvf - --strip-components=1 -C /usr/local/bin "shellcheck-${SHELLCHECK_VERSION}/shellcheck"
134133COPY --link bin/just-sh /usr/local/bin/
@@ -144,7 +143,7 @@ COPY --link bin/action-* bin/just-dev bin/just-sh /bin/
144143# #
145144
146145FROM apt-base as protobuf
147- ARG PROTOC_VERSION=v3.20.3
146+ ARG PROTOC_VERSION=v29.0
148147RUN url="https://github.com/google/protobuf/releases/download/$PROTOC_VERSION/protoc-${PROTOC_VERSION#v}-linux-$(uname -m).zip" ; \
149148 cd $(mktemp -d) && \
150149 scurl -o protoc.zip "$url" && \
@@ -166,19 +165,19 @@ RUN url="https://github.com/olix0r/cargo-action-fmt/releases/download/release%2F
166165
167166# cargo-deny checks cargo dependencies for licensing and RUSTSEC security issues.
168167FROM apt-base as cargo-deny
169- ARG CARGO_DENY_VERSION=0.14.11
168+ ARG CARGO_DENY_VERSION=0.16.3
170169RUN url="https://github.com/EmbarkStudios/cargo-deny/releases/download/${CARGO_DENY_VERSION}/cargo-deny-${CARGO_DENY_VERSION}-x86_64-unknown-linux-musl.tar.gz" ; \
171170 scurl "$url" | tar zvxf - --strip-components=1 -C /usr/local/bin "cargo-deny-${CARGO_DENY_VERSION}-x86_64-unknown-linux-musl/cargo-deny"
172171
173172# cargo-nextest is a nicer test runner.
174173FROM apt-base as cargo-nextest
175- ARG NEXTEST_VERSION=0.9.67
174+ ARG NEXTEST_VERSION=0.9.85
176175RUN url="https://github.com/nextest-rs/nextest/releases/download/cargo-nextest-${NEXTEST_VERSION}/cargo-nextest-${NEXTEST_VERSION}-x86_64-unknown-linux-gnu.tar.gz" ; \
177176 scurl "$url" | tar zvxf - -C /usr/local/bin cargo-nextest
178177
179178# cargo-tarpaulin is a code coverage tool.
180179FROM apt-base as cargo-tarpaulin
181- ARG CARGO_TARPAULIN_VERSION=0.27 .3
180+ ARG CARGO_TARPAULIN_VERSION=0.31 .3
182181RUN url="https://github.com/xd009642/tarpaulin/releases/download/${CARGO_TARPAULIN_VERSION}/cargo-tarpaulin-x86_64-unknown-linux-musl.tar.gz" ;\
183182 scurl "$url" | tar xzvf - -C /usr/local/bin cargo-tarpaulin
184183
@@ -193,39 +192,42 @@ COPY --link bin/just-cargo /bin/
193192# # Go tools
194193# #
195194
196- FROM docker.io/library/golang:1.22 as go-delve
195+ FROM docker.io/library/golang:1.23 as go-delve
197196RUN go install github.com/go-delve/delve/cmd/dlv@latest
198197
199- FROM docker.io/library/golang:1.22 as go-impl
198+ FROM docker.io/library/golang:1.23 as go-impl
200199RUN go install github.com/josharian/impl@latest
201200
202- FROM docker.io/library/golang:1.22 as go-outline
201+ FROM docker.io/library/golang:1.23 as go-outline
203202RUN go install github.com/ramya-rao-a/go-outline@latest
204203
205- FROM docker.io/library/golang:1.22 as go-protoc
206- RUN go install google.golang.org/protobuf/cmd/
[email protected] 207- RUN go install google.golang.org/grpc/cmd/
[email protected] 204+ FROM docker.io/library/golang:1.23 as go-protoc
205+ ARG PROTOC_GEN_GO_VERSION=v1.35.2
206+ ARG PROTOC_GEN_GO_GRPC_VERSION=v1.5.1
207+ RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@${PROTOC_GEN_GO_VERSION}
208+ RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@${PROTOC_GEN_GO_GRPC_VERSION}
208209
209- FROM docker.io/library/golang:1.22 as golangci-lint
210+ FROM docker.io/library/golang:1.23 as golangci-lint
210211RUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
211212
212- FROM docker.io/library/golang:1.22 as gomodifytags
213+ FROM docker.io/library/golang:1.23 as gomodifytags
213214RUN go install github.com/fatih/gomodifytags@latest
214215
215- FROM docker.io/library/golang:1.22 as gopkgs
216+ FROM docker.io/library/golang:1.23 as gopkgs
216217RUN go install github.com/uudashr/gopkgs/v2/cmd/gopkgs@latest
217218
218- FROM docker.io/library/golang:1.22 as goplay
219+ FROM docker.io/library/golang:1.23 as goplay
219220RUN go install github.com/haya14busa/goplay/cmd/goplay@latest
220221
221- FROM docker.io/library/golang:1.22 as gopls
222+ FROM docker.io/library/golang:1.23 as gopls
222223RUN go install golang.org/x/tools/gopls@latest
223224
224- FROM docker.io/library/golang:1.22 as gotests
225+ FROM docker.io/library/golang:1.23 as gotests
225226RUN go install github.com/cweill/gotests/gotests@latest
226227
227- FROM docker.io/library/golang:1.22 as gotestsum
228- RUN go install gotest.tools/
[email protected] 228+ FROM docker.io/library/golang:1.23 as gotestsum
229+ ARG GOTESTSUM_VERSION=v1.12.0
230+ RUN go install gotest.tools/gotestsum@${GOTESTSUM_VERSION}
229231
230232FROM scratch as tools-go
231233COPY --link --from=go-delve /go/bin/dlv /bin/
@@ -263,7 +265,7 @@ COPY --link --from=tools-script /bin/* /bin/
263265# #
264266
265267# A Go build environment.
266- FROM docker.io/library/golang:1.22 as go
268+ FROM docker.io/library/golang:1.23 as go
267269RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
268270 --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
269271 --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
@@ -277,7 +279,7 @@ ENV PROTOC_NO_VENDOR=1 \
277279 PROTOC_INCLUDE=/usr/local/include
278280
279281# A Rust build environment.
280- FROM docker.io/rust:1.76 -slim-bookworm as rust
282+ FROM docker.io/library/ rust:1.83 -slim-bookworm as rust
281283RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
282284 --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
283285 --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
@@ -379,6 +381,8 @@ RUN --mount=type=cache,from=apt-llvm,source=/etc/apt,target=/etc/apt,ro \
379381 --mount=type=cache,from=apt-llvm,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
380382 --mount=type=cache,from=apt-llvm,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
381383 DEBIAN_FRONTEND=noninteractive apt-get install -y clang-14 llvm-14
384+ ENV CC=clang-14 \
385+ CXX=clang++-14
382386
383387# Use microsoft's Docker setup script to install the Docker CLI.
384388#
@@ -393,7 +397,7 @@ RUN --mount=type=cache,id=apt-docker,from=apt-base,source=/etc/apt,target=/etc/a
393397 scurl https://raw.githubusercontent.com/microsoft/vscode-dev-containers/main/script-library/docker-debian.sh | bash -s
394398ENV DOCKER_BUILDKIT=1
395399
396- ARG MARKDOWNLINT_VERSION=0.10 .0
400+ ARG MARKDOWNLINT_VERSION=0.15 .0
397401RUN --mount=type=cache,from=apt-node,source=/etc/apt,target=/etc/apt,ro \
398402 --mount=type=cache,from=apt-node,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
399403 --mount=type=cache,from=apt-node,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
0 commit comments