55# #
66
77
8- ARG GO_TAG=1.24
9- ARG RUST_TAG=1.88 .0
8+ ARG GO_TAG=1.25
9+ ARG RUST_TAG=1.90 .0
1010
1111# These layers include Debian apt caches, so layers that extend `apt-base`
1212# should not be published. Instead, these layers should be used to provide
@@ -45,13 +45,13 @@ RUN url="https://github.com/olix0r/j5j/releases/download/${J5J_VERSION}/j5j-${J5
4545
4646# just runs build/test recipes. Like `make` but a bit more ergonomic.
4747FROM apt-base as just
48- ARG JUST_VERSION=1.42.4 # repo=casey/just
48+ ARG JUST_VERSION=1.43.0 # repo=casey/just
4949RUN url="https://github.com/casey/just/releases/download/${JUST_VERSION}/just-${JUST_VERSION}-x86_64-unknown-linux-musl.tar.gz" ; \
5050 scurl "$url" | tar zvxf - -C /usr/local/bin just
5151
5252# yq is kind of like jq, but for YAML.
5353FROM apt-base as yq
54- ARG YQ_VERSION=v4.47.1 # repo=mikefarah/yq
54+ ARG YQ_VERSION=v4.47.2 # repo=mikefarah/yq
5555RUN url="https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64" ; \
5656 scurl -o /yq "$url" && chmod +x /yq
5757
@@ -67,7 +67,7 @@ COPY --link bin/scurl /bin/
6767
6868# helm templates kubernetes manifests.
6969FROM apt-base as helm
70- ARG HELM_VERSION=v3.18.4 # repo=helm/helm
70+ ARG HELM_VERSION=v3.19.0 # repo=helm/helm
7171RUN url="https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" ; \
7272 scurl "$url" | tar xzvf - --strip-components=1 -C /usr/local/bin linux-amd64/helm
7373
@@ -80,50 +80,34 @@ RUN url="https://github.com/norwoodj/helm-docs/releases/download/$HELM_DOCS_VERS
8080
8181# kubectl controls kubernetes clusters.
8282FROM apt-base as kubectl
83- ARG KUBECTL_VERSION=v1.33.3 # repo=kubernetes/kubernetes
83+ ARG KUBECTL_VERSION=v1.34.1 # repo=kubernetes/kubernetes
8484RUN url="https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" ; \
8585 scurl -o /usr/local/bin/kubectl "$url" && chmod +x /usr/local/bin/kubectl
8686
8787# k3d runs kubernetes clusters in docker.
8888FROM apt-base as k3d
89- ARG K3D_VERSION=v5.8.3 # repo=rancher/k3d
90- RUN url="https://raw.githubusercontent.com/rancher/k3d/$K3D_VERSION/install.sh" ; \
91- scurl "$url" | USE_SUDO=false K3D_INSTALL_DIR=/usr/local/bin bash
89+ COPY --link --from=ghcr.io/k3d-io/k3d:5.8.3 /bin/k3d /usr/local/bin/
9290# just-k3d is a utility that encodes many of the common k3d commands we use.
9391COPY --link bin/just-k3d /usr/local/bin/
9492# `K3S_IMAGES_JSON` configures just-k3d so that it uses a pinned version of k3s.
9593# This is generated by `just sync-k3s-images` and i
9694ENV K3S_IMAGES_JSON=/usr/local/etc/k3s-images.json
9795COPY --link k3s-images.json "$K3S_IMAGES_JSON"
9896
99- # step is a tool for managing certificates.
100- FROM apt-base as step
101- ARG STEP_VERSION=v0.28.7 # repo=smallstep/cli
102- RUN url="https://dl.smallstep.com/gh-release/cli/gh-release-header/${STEP_VERSION}/step_linux_${STEP_VERSION#v}_amd64.tar.gz" ; \
103- scurl "$url" | tar xzvf - --strip-components=2 -C /usr/local/bin step_"${STEP_VERSION#v}" /bin/step
104-
10597FROM scratch as tools-k8s
10698COPY --link --from=helm /usr/local/bin/helm /bin/
10799COPY --link --from=helm-docs /usr/local/bin/helm-docs /bin/
108100COPY --link --from=k3d /usr/local/bin/* /bin/
109101ENV K3S_IMAGES_JSON=/etc/k3s-images.json
110102COPY --link --from=k3d /usr/local/etc/k3s-images.json "$K3S_IMAGES_JSON"
111103COPY --link --from=kubectl /usr/local/bin/kubectl /bin/
112- COPY --link --from=step /usr/local/bin/step /bin/
113-
114- FROM apt-base as syft
115- ARG SYFT_VERSION=v1.29.0 # repo=anchore/syft
116- RUN url="https://github.com/anchore/syft/releases/download/${SYFT_VERSION}/syft_${SYFT_VERSION#v}_linux_amd64.tar.gz" ; \
117- scurl "$url" | tar xzvf - -C /usr/local/bin syft
118-
119- FROM apt-base as grype
120- ARG GRYPE_VERSION=v0.96.1 # repo=anchore/grype
121- RUN url="https://github.com/anchore/grype/releases/download/${GRYPE_VERSION}/grype_${GRYPE_VERSION#v}_linux_amd64.tar.gz" ; \
122- scurl "$url" | tar xzvf - -C /usr/local/bin grype
104+ COPY --link --from=docker.io/smallstep/step-cli:0.28.7 /usr/local/bin/step /bin/
123105
124106FROM scratch as tools-oci
125- COPY --link --from=syft /usr/local/bin/syft /bin/
126- COPY --link --from=grype /usr/local/bin/grype /bin/
107+ COPY --link --from=ghcr.io/sigstore/cosign/cosign:v2.6.0 /ko-app/cosign /bin/
108+ COPY --link --from=ghcr.io/oras-project/oras:v1.3.0 /bin/oras /bin/
109+ COPY --link --from=ghcr.io/anchore/syft:v1.33.0 /syft /bin/
110+ COPY --link --from=ghcr.io/anchore/grype:v0.96.1 /grype /bin/
127111
128112# #
129113# # Linting tools
@@ -141,25 +125,18 @@ ARG CHECKSEC_VERSION=2.7.1 # ignore
141125RUN url="https://raw.githubusercontent.com/slimm609/checksec/${CHECKSEC_VERSION}/checksec" ; \
142126 scurl -o /usr/local/bin/checksec "$url" && chmod 755 /usr/local/bin/checksec
143127
144- # shellcheck lints shell scripts.
145- FROM apt-base as shellcheck
146- ARG SHELLCHECK_VERSION=v0.10.0 # repo=koalaman/shellcheck
147- RUN url="https://github.com/koalaman/shellcheck/releases/download/${SHELLCHECK_VERSION}/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" ; \
148- scurl "$url" | tar xJvf - --strip-components=1 -C /usr/local/bin "shellcheck-${SHELLCHECK_VERSION}/shellcheck"
149- COPY --link bin/just-sh /usr/local/bin/
150-
151128FROM scratch as tools-lint
152129COPY --link --from=actionlint /usr/local/bin/actionlint /bin/
153130COPY --link --from=checksec /usr/local/bin/checksec /bin/
154- COPY --link --from=shellcheck /usr/local /bin/shellcheck /bin/
131+ COPY --link --from=docker.io/koalaman/shellcheck:v0.11.0 /bin/shellcheck /bin/
155132COPY --link bin/action-* bin/just-dev bin/just-sh /bin/
156133
157134# #
158135# # Protobuf
159136# #
160137
161138FROM apt-base as protobuf
162- ARG PROTOC_VERSION=v31 .1 # repo=protocolbuffers/protobuf
139+ ARG PROTOC_VERSION=v32 .1 # repo=protocolbuffers/protobuf
163140RUN url="https://github.com/google/protobuf/releases/download/$PROTOC_VERSION/protoc-${PROTOC_VERSION#v}-linux-$(uname -m).zip" ; \
164141 cd $(mktemp -d) && \
165142 scurl -o protoc.zip "$url" && \
@@ -186,13 +163,13 @@ RUN url="https://github.com/rust-secure-code/cargo-auditable/releases/download/$
186163
187164# cargo-deny checks cargo dependencies for licensing and RUSTSEC security issues.
188165FROM apt-base as cargo-deny
189- ARG CARGO_DENY_VERSION=0.18.3 # repo=EmbarkStudios/cargo-deny
166+ ARG CARGO_DENY_VERSION=0.18.5 # repo=EmbarkStudios/cargo-deny
190167RUN url="https://github.com/EmbarkStudios/cargo-deny/releases/download/${CARGO_DENY_VERSION}/cargo-deny-${CARGO_DENY_VERSION}-x86_64-unknown-linux-musl.tar.gz" ; \
191168 scurl "$url" | tar zvxf - --strip-components=1 -C /usr/local/bin "cargo-deny-${CARGO_DENY_VERSION}-x86_64-unknown-linux-musl/cargo-deny"
192169
193170# cargo-nextest is a nicer test runner.
194171FROM apt-base as cargo-nextest
195- ARG NEXTEST_VERSION=0.9.101 # repo=nextest-rs/nextest,prefix=cargo-nextest-
172+ ARG NEXTEST_VERSION=0.9.104 # repo=nextest-rs/nextest,prefix=cargo-nextest-
196173RUN url="https://github.com/nextest-rs/nextest/releases/download/cargo-nextest-${NEXTEST_VERSION}/cargo-nextest-${NEXTEST_VERSION}-x86_64-unknown-linux-gnu.tar.gz" ; \
197174 scurl "$url" | tar zvxf - -C /usr/local/bin cargo-nextest
198175
@@ -248,7 +225,7 @@ FROM docker.io/library/golang:${GO_TAG} as gotests
248225RUN go install github.com/cweill/gotests/gotests@latest
249226
250227FROM docker.io/library/golang:${GO_TAG} as gotestsum
251- ARG GOTESTSUM_VERSION=v1.12.0
228+ ARG GOTESTSUM_VERSION=v1.13.0 # repo=gotestyourself/gotestsum
252229RUN go install gotest.tools/gotestsum@${GOTESTSUM_VERSION}
253230
254231FROM scratch as tools-go
@@ -310,6 +287,7 @@ RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
310287 cmake \
311288 curl \
312289 file \
290+ gh \
313291 git \
314292 jo \
315293 jq \
@@ -344,6 +322,7 @@ RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
344322 --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
345323 --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
346324 DEBIAN_FRONTEND=noninteractive apt-get install -y \
325+ binutils-aarch64-linux-gnu \
347326 g++-aarch64-linux-gnu \
348327 gcc-aarch64-linux-gnu \
349328 libc6-dev-arm64-cross
0 commit comments