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?