mirror of https://github.com/docker/cli.git
Merge pull request #4410 from crazy-max/update-bookworm
Dockerfile: update to debian bookworm
This commit is contained in:
commit
1c6d7d00d6
|
@ -26,7 +26,7 @@ jobs:
|
||||||
- connhelper-ssh
|
- connhelper-ssh
|
||||||
base:
|
base:
|
||||||
- alpine
|
- alpine
|
||||||
- bullseye
|
- debian
|
||||||
engine-version:
|
engine-version:
|
||||||
# - 20.10-dind # FIXME: Fails on 20.10
|
# - 20.10-dind # FIXME: Fails on 20.10
|
||||||
- stable-dind # TODO: Use 20.10-dind, stable-dind is deprecated
|
- stable-dind # TODO: Use 20.10-dind, stable-dind is deprecated
|
||||||
|
|
21
Dockerfile
21
Dockerfile
|
@ -1,8 +1,10 @@
|
||||||
# syntax=docker/dockerfile:1
|
# syntax=docker/dockerfile:1
|
||||||
|
|
||||||
ARG BASE_VARIANT=alpine
|
ARG BASE_VARIANT=alpine
|
||||||
ARG GO_VERSION=1.21.3
|
|
||||||
ARG ALPINE_VERSION=3.17
|
ARG ALPINE_VERSION=3.17
|
||||||
|
ARG BASE_DEBIAN_DISTRO=bookworm
|
||||||
|
|
||||||
|
ARG GO_VERSION=1.21.3
|
||||||
ARG XX_VERSION=1.2.1
|
ARG XX_VERSION=1.2.1
|
||||||
ARG GOVERSIONINFO_VERSION=v1.3.0
|
ARG GOVERSIONINFO_VERSION=v1.3.0
|
||||||
ARG GOTESTSUM_VERSION=v1.10.0
|
ARG GOTESTSUM_VERSION=v1.10.0
|
||||||
|
@ -22,22 +24,15 @@ ARG TARGETPLATFORM
|
||||||
# gcc is installed for libgcc only
|
# gcc is installed for libgcc only
|
||||||
RUN xx-apk add --no-cache musl-dev gcc
|
RUN xx-apk add --no-cache musl-dev gcc
|
||||||
|
|
||||||
FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-bullseye AS build-base-bullseye
|
FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-${BASE_DEBIAN_DISTRO} AS build-base-debian
|
||||||
ENV GOTOOLCHAIN=local
|
ENV GOTOOLCHAIN=local
|
||||||
COPY --link --from=xx / /
|
COPY --link --from=xx / /
|
||||||
RUN apt-get update && apt-get install --no-install-recommends -y bash clang lld llvm file
|
RUN apt-get update && apt-get install --no-install-recommends -y bash clang lld llvm file
|
||||||
WORKDIR /go/src/github.com/docker/cli
|
WORKDIR /go/src/github.com/docker/cli
|
||||||
|
|
||||||
FROM build-base-bullseye AS build-bullseye
|
FROM build-base-debian AS build-debian
|
||||||
ARG TARGETPLATFORM
|
ARG TARGETPLATFORM
|
||||||
RUN xx-apt-get install --no-install-recommends -y libc6-dev libgcc-10-dev
|
RUN xx-apt-get install --no-install-recommends -y libc6-dev libgcc-12-dev pkgconf
|
||||||
# workaround for issue with llvm 11 for darwin/amd64 platform:
|
|
||||||
# # github.com/docker/cli/cmd/docker
|
|
||||||
# /usr/local/go/pkg/tool/linux_amd64/link: /usr/local/go/pkg/tool/linux_amd64/link: running strip failed: exit status 1
|
|
||||||
# llvm-strip: error: unsupported load command (cmd=0x5)
|
|
||||||
# more info: https://github.com/docker/cli/pull/3717
|
|
||||||
# FIXME: remove once llvm 12 available on debian
|
|
||||||
RUN [ "$TARGETPLATFORM" != "darwin/amd64" ] || ln -sfnT /bin/true /usr/bin/llvm-strip
|
|
||||||
|
|
||||||
FROM build-base-${BASE_VARIANT} AS goversioninfo
|
FROM build-base-${BASE_VARIANT} AS goversioninfo
|
||||||
ARG GOVERSIONINFO_VERSION
|
ARG GOVERSIONINFO_VERSION
|
||||||
|
@ -66,8 +61,6 @@ ARG VERSION
|
||||||
# PACKAGER_NAME sets the company that produced the windows binary
|
# PACKAGER_NAME sets the company that produced the windows binary
|
||||||
ARG PACKAGER_NAME
|
ARG PACKAGER_NAME
|
||||||
COPY --link --from=goversioninfo /out/goversioninfo /usr/bin/goversioninfo
|
COPY --link --from=goversioninfo /out/goversioninfo /usr/bin/goversioninfo
|
||||||
# in bullseye arm64 target does not link with lld so configure it to use ld instead
|
|
||||||
RUN [ ! -f /etc/alpine-release ] && xx-info is-cross && [ "$(xx-info arch)" = "arm64" ] && XX_CC_PREFER_LINKER=ld xx-clang --setup-target-triple || true
|
|
||||||
RUN --mount=type=bind,target=.,ro \
|
RUN --mount=type=bind,target=.,ro \
|
||||||
--mount=type=cache,target=/root/.cache \
|
--mount=type=cache,target=/root/.cache \
|
||||||
--mount=from=dockercore/golang-cross:xx-sdk-extras,target=/xx-sdk,src=/xx-sdk \
|
--mount=from=dockercore/golang-cross:xx-sdk-extras,target=/xx-sdk,src=/xx-sdk \
|
||||||
|
@ -103,7 +96,7 @@ RUN --mount=ro --mount=type=cache,target=/root/.cache \
|
||||||
FROM build-base-alpine AS e2e-base-alpine
|
FROM build-base-alpine AS e2e-base-alpine
|
||||||
RUN apk add --no-cache build-base curl openssl openssh-client
|
RUN apk add --no-cache build-base curl openssl openssh-client
|
||||||
|
|
||||||
FROM build-base-bullseye AS e2e-base-bullseye
|
FROM build-base-debian AS e2e-base-debian
|
||||||
RUN apt-get update && apt-get install -y build-essential curl openssl openssh-client
|
RUN apt-get update && apt-get install -y build-essential curl openssl openssh-client
|
||||||
|
|
||||||
FROM docker/buildx-bin:${BUILDX_VERSION} AS buildx
|
FROM docker/buildx-bin:${BUILDX_VERSION} AS buildx
|
||||||
|
|
|
@ -52,7 +52,7 @@ target "binary" {
|
||||||
platforms = ["local"]
|
platforms = ["local"]
|
||||||
output = ["build"]
|
output = ["build"]
|
||||||
args = {
|
args = {
|
||||||
BASE_VARIANT = USE_GLIBC == "1" ? "bullseye" : "alpine"
|
BASE_VARIANT = USE_GLIBC == "1" ? "debian" : "alpine"
|
||||||
VERSION = VERSION
|
VERSION = VERSION
|
||||||
PACKAGER_NAME = PACKAGER_NAME
|
PACKAGER_NAME = PACKAGER_NAME
|
||||||
GO_STRIP = STRIP_TARGET
|
GO_STRIP = STRIP_TARGET
|
||||||
|
@ -72,7 +72,7 @@ target "plugins" {
|
||||||
platforms = ["local"]
|
platforms = ["local"]
|
||||||
output = ["build"]
|
output = ["build"]
|
||||||
args = {
|
args = {
|
||||||
BASE_VARIANT = USE_GLIBC == "1" ? "bullseye" : "alpine"
|
BASE_VARIANT = USE_GLIBC == "1" ? "debian" : "alpine"
|
||||||
VERSION = VERSION
|
VERSION = VERSION
|
||||||
GO_STRIP = STRIP_TARGET
|
GO_STRIP = STRIP_TARGET
|
||||||
}
|
}
|
||||||
|
@ -155,7 +155,7 @@ target "e2e-image" {
|
||||||
output = ["type=docker"]
|
output = ["type=docker"]
|
||||||
tags = ["${IMAGE_NAME}"]
|
tags = ["${IMAGE_NAME}"]
|
||||||
args = {
|
args = {
|
||||||
BASE_VARIANT = USE_GLIBC == "1" ? "bullseye" : "alpine"
|
BASE_VARIANT = USE_GLIBC == "1" ? "debian" : "alpine"
|
||||||
VERSION = VERSION
|
VERSION = VERSION
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue