diff --git a/Dockerfile b/Dockerfile index 81f4db9458..2edf9def04 100644 --- a/Dockerfile +++ b/Dockerfile @@ -314,18 +314,39 @@ FROM runc-build AS runc-linux FROM binary-dummy AS runc-windows FROM runc-${TARGETOS} AS runc -FROM dev-base AS tini +# tini +FROM base AS tini-src +WORKDIR /usr/src/tini +RUN git init . && git remote add origin "https://github.com/krallin/tini.git" +# TINI_VERSION specifies the version of tini (docker-init) to build. This +# binary is used when starting containers with the `--init` option. +ARG TINI_VERSION=v0.19.0 +RUN git fetch -q --depth 1 origin "${TINI_VERSION}" +refs/tags/*:refs/tags/* && git checkout -q FETCH_HEAD + +FROM base AS tini-build +WORKDIR /go/src/github.com/krallin/tini ARG DEBIAN_FRONTEND -ARG TINI_VERSION RUN --mount=type=cache,sharing=locked,id=moby-tini-aptlib,target=/var/lib/apt \ --mount=type=cache,sharing=locked,id=moby-tini-aptcache,target=/var/cache/apt \ - apt-get update && apt-get install -y --no-install-recommends \ - cmake \ - vim-common -COPY /hack/dockerfile/install/install.sh /hack/dockerfile/install/tini.installer / -RUN --mount=type=cache,target=/root/.cache/go-build \ - --mount=type=cache,target=/go/pkg/mod \ - PREFIX=/build /install.sh tini + apt-get update && apt-get install -y --no-install-recommends cmake +ARG TARGETPLATFORM +RUN --mount=type=cache,sharing=locked,id=moby-tini-aptlib,target=/var/lib/apt \ + --mount=type=cache,sharing=locked,id=moby-tini-aptcache,target=/var/cache/apt \ + xx-apt-get install -y --no-install-recommends \ + gcc libc6-dev +RUN --mount=from=tini-src,src=/usr/src/tini,rw \ + --mount=type=cache,target=/root/.cache/go-build,id=tini-build-$TARGETPLATFORM <