浏览代码

Merge pull request #45763 from thaJeztah/dockerfile_more_resilient

Dockerfile: make cli stages more resilient against unclean termination
Sebastiaan van Stijn 2 年之前
父节点
当前提交
7f8b1cd7f9
共有 1 个文件被更改,包括 8 次插入4 次删除
  1. 8 4
      Dockerfile

+ 8 - 4
Dockerfile

@@ -255,9 +255,11 @@ COPY hack/dockerfile/cli.sh /download-or-build-cli.sh
 ARG DOCKERCLI_REPOSITORY
 ARG DOCKERCLI_REPOSITORY
 ARG DOCKERCLI_VERSION
 ARG DOCKERCLI_VERSION
 ARG TARGETPLATFORM
 ARG TARGETPLATFORM
-RUN --mount=type=cache,id=dockercli-git-$TARGETPLATFORM,target=./.git \
+RUN --mount=type=cache,id=dockercli-git-$TARGETPLATFORM,sharing=locked,target=./.git \
     --mount=type=cache,target=/root/.cache/go-build,id=dockercli-build-$TARGETPLATFORM \
     --mount=type=cache,target=/root/.cache/go-build,id=dockercli-build-$TARGETPLATFORM \
-    /download-or-build-cli.sh ${DOCKERCLI_VERSION} ${DOCKERCLI_REPOSITORY} /build
+        rm -f ./.git/*.lock \
+     && /download-or-build-cli.sh ${DOCKERCLI_VERSION} ${DOCKERCLI_REPOSITORY} /build \
+     && /build/docker --version
 
 
 FROM base AS dockercli-integration
 FROM base AS dockercli-integration
 WORKDIR /go/src/github.com/docker/cli
 WORKDIR /go/src/github.com/docker/cli
@@ -265,9 +267,11 @@ COPY hack/dockerfile/cli.sh /download-or-build-cli.sh
 ARG DOCKERCLI_INTEGRATION_REPOSITORY
 ARG DOCKERCLI_INTEGRATION_REPOSITORY
 ARG DOCKERCLI_INTEGRATION_VERSION
 ARG DOCKERCLI_INTEGRATION_VERSION
 ARG TARGETPLATFORM
 ARG TARGETPLATFORM
-RUN --mount=type=cache,id=dockercli-integration-git-$TARGETPLATFORM,target=./.git \
+RUN --mount=type=cache,id=dockercli-integration-git-$TARGETPLATFORM,sharing=locked,target=./.git \
     --mount=type=cache,target=/root/.cache/go-build,id=dockercli-integration-build-$TARGETPLATFORM \
     --mount=type=cache,target=/root/.cache/go-build,id=dockercli-integration-build-$TARGETPLATFORM \
-    /download-or-build-cli.sh ${DOCKERCLI_INTEGRATION_VERSION} ${DOCKERCLI_INTEGRATION_REPOSITORY} /build
+        rm -f ./.git/*.lock \
+     && /download-or-build-cli.sh ${DOCKERCLI_INTEGRATION_VERSION} ${DOCKERCLI_INTEGRATION_REPOSITORY} /build \
+     && /build/docker --version
 
 
 # runc
 # runc
 FROM base AS runc-src
 FROM base AS runc-src