go1.21.11 (released 2024-06-04) includes security fixes to the archive/zip and net/netip packages, as well as bug fixes to the compiler, the go command, the runtime, and the os package. See the Go 1.21.11 milestone on our issue tracker for details; - https://github.com/golang/go/issues?q=milestone%3AGo1.21.11+label%3ACherryPickApproved - full diff: https://github.com/golang/go/compare/go1.21.10...go1.21.11 From the security announcement; We have just released Go versions 1.22.4 and 1.21.11, minor point releases. These minor releases include 2 security fixes following the security policy: - archive/zip: mishandling of corrupt central directory record The archive/zip package's handling of certain types of invalid zip files differed from the behavior of most zip implementations. This misalignment could be exploited to create an zip file with contents that vary depending on the implementation reading the file. The archive/zip package now rejects files containing these errors. Thanks to Yufan You for reporting this issue. This is CVE-2024-24789 and Go issue https://go.dev/issue/66869. - net/netip: unexpected behavior from Is methods for IPv4-mapped IPv6 addresses The various Is methods (IsPrivate, IsLoopback, etc) did not work as expected for IPv4-mapped IPv6 addresses, returning false for addresses which would return true in their traditional IPv4 forms. Thanks to Enze Wang of Alioth and Jianjun Chen of Zhongguancun Lab for reporting this issue. This is CVE-2024-24790 and Go issue https://go.dev/issue/67680. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
60 lines
1.9 KiB
Docker
60 lines
1.9 KiB
Docker
# syntax=docker/dockerfile:1
|
|
|
|
ARG GO_VERSION=1.21.11
|
|
ARG ALPINE_VERSION=3.20
|
|
|
|
ARG BUILDX_VERSION=0.12.1
|
|
FROM docker/buildx-bin:${BUILDX_VERSION} AS buildx
|
|
|
|
FROM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS golang
|
|
ENV GOTOOLCHAIN=local
|
|
ENV CGO_ENABLED=0
|
|
|
|
FROM golang AS gofumpt
|
|
ARG GOFUMPT_VERSION=v0.6.0
|
|
RUN --mount=type=cache,target=/root/.cache/go-build \
|
|
--mount=type=cache,target=/go/pkg/mod \
|
|
--mount=type=tmpfs,target=/go/src/ \
|
|
GO111MODULE=on go install "mvdan.cc/gofumpt@${GOFUMPT_VERSION}" \
|
|
&& gofumpt --version
|
|
|
|
FROM golang AS gotestsum
|
|
ARG GOTESTSUM_VERSION=v1.10.0
|
|
RUN --mount=type=cache,target=/root/.cache/go-build \
|
|
--mount=type=cache,target=/go/pkg/mod \
|
|
--mount=type=tmpfs,target=/go/src/ \
|
|
GO111MODULE=on go install gotest.tools/gotestsum@${GOTESTSUM_VERSION}
|
|
|
|
FROM golang AS goversioninfo
|
|
ARG GOVERSIONINFO_VERSION=v1.3.0
|
|
RUN --mount=type=cache,target=/root/.cache/go-build \
|
|
--mount=type=cache,target=/go/pkg/mod \
|
|
--mount=type=tmpfs,target=/go/src/ \
|
|
GO111MODULE=on go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@${GOVERSIONINFO_VERSION}
|
|
|
|
FROM golang AS dev
|
|
RUN apk add --no-cache \
|
|
bash \
|
|
build-base \
|
|
ca-certificates \
|
|
coreutils \
|
|
curl \
|
|
git \
|
|
jq \
|
|
nano
|
|
|
|
RUN echo -e "\nYou are now in a development container. Run '\e\033[1mmake help\e\033[0m' to learn about\navailable make targets.\n" > /etc/motd \
|
|
&& echo -e "cat /etc/motd\nPS1=\"\e[0;32m\u@docker-cli-dev\\$ \e[0m\"" >> /root/.bashrc
|
|
CMD bash
|
|
ENV DISABLE_WARN_OUTSIDE_CONTAINER=1
|
|
ENV PATH=$PATH:/go/src/github.com/docker/cli/build
|
|
|
|
COPY --link --from=buildx /buildx /usr/libexec/docker/cli-plugins/docker-buildx
|
|
COPY --link --from=gofumpt /go/bin/* /go/bin/
|
|
COPY --link --from=gotestsum /go/bin/* /go/bin/
|
|
COPY --link --from=goversioninfo /go/bin/* /go/bin/
|
|
|
|
WORKDIR /go/src/github.com/docker/cli
|
|
ENV GO111MODULE=auto
|
|
COPY --link . .
|