docker-credential-gcr在Docker镜像中找不到,尽pipe可执行文件在那里

Docker新手在这里。

我正在尝试为包含docker client + gcloud的Gitlab CIpipe道以及下列gcloud组件构build一个Docker镜像:

  • kubectl
  • 搬运工-凭据GCR

这是我的dockerfile:

FROM docker:git RUN mkdir /opt \ && cd /opt \ && wget -q https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-152.0.0-linux-x86_64.tar.gz \ && tar -xzf google-cloud-sdk-152.0.0-linux-x86_64.tar.gz \ && rm google-cloud-sdk-152.0.0-linux-x86_64.tar.gz \ && ln -s /opt/google-cloud-sdk/bin/gcloud /usr/bin/gcloud \ && apk -q update \ && apk -q add python \ && apk add --update libintl \ && apk add --virtual build_deps gettext \ && cp /usr/bin/envsubst /usr/local/bin/envsubst \ && apk del build_deps \ && rm -rf /var/cache/apk/* \ && echo "y" | gcloud components install kubectl docker-credential-gcr \ && ln -s /opt/google-cloud-sdk/bin/kubectl /usr/bin/kubectl \ && ln -s /opt/google-cloud-sdk/bin/docker-credential-gcr /usr/bin/docker-credential-gcr 

在我的CIstream程中,我需要运行docker-credential-gcr(因为这个问题 )。

docker-credential-gcr可执行文件已正确安装在/opt/google-cloud-sdk/bin如运行docker run -i -t gitlabci-test ls /opt/google-cloud-sdk/bin所示。 docker run -i -t gitlabci-test ls /opt/google-cloud-sdk/bin

第一个命令截图

它也正确地在/usr/bin里面显示,如docker run -i -t gitlabci-test ls -la /usr/bin所示docker run -i -t gitlabci-test ls -la /usr/bin

在这里输入图像说明

然而,试图用下面的任何一种方法来调用它都是不幸的

 docker run -i -t gitlabci-test docker-credential-gcr docker run -i -t gitlabci-test /usr/bin/docker-credential-gcr docker run -i -t gitlabci-test /opt/google-cloud-sdk/bin/docker-credential-gcr 

错误信息:

 /usr/local/bin/docker-entrypoint.sh: exec: line 20: docker-credential-gcr: not found 

另一方面,运行kubectl组件工作正常

 docker run -i -t gitlabci-test kubectl version 

在这里输入图像说明

任何想法如何我可以解决这个问题,以便能够与容器运行docker-credential-gcr?