docker-credential-gcr не найден внутри образа Docker, хотя исполняемый файл есть

Я пытаюсь создать образ Docker для моего конвейера Gitlab CI, содержащий клиент docker + gcloud вместе со следующими компонентами gcloud:

  • кубектл
  • docker-credential-gcr

Это мой докерфайл:

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

Внутри моего потока CI мне нужно запустить docker-credential-gcr (из-за эта проблема).

Исполняемый файл docker-credential-gcr правильно установлен внутри /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 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 с контейнером?


person Overdrivr    schedule 24.04.2017    source источник