Почему Kaniko не может использовать многоступенчатый Docker Image? - PullRequest
0 голосов
/ 02 декабря 2018

Построение следующего Dockerfile на GitLab CI с использованием Kaniko приведет к ошибке error pushing image: failed to push to destination eu.gcr.io/stritzke-enterprises/eliah-speech-server:latest: Get https://eu.gcr.io/...: exit status 1

Если я удаляю первые операторы FROM, RUN и COPY --from из Dockerfile, образ Dockerпостроен и выдвинут как ожидалось.Если я выполняю сборку Kaniko с помощью Docker на моей локальной машине, все работает как положено.Я выполняю другие сборки Kaniko и отправляю на тот же GitLab CI runner с теми же учетными данными GCE Service Account.

Что не так с сборкой Kaniko на основе GitLab CI?

Dockerfile

FROM alpine:latest as alpine

RUN apk add -U --no-cache ca-certificates

FROM scratch

COPY --from=alpine /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/

COPY binaries/speech-server /speech-server

EXPOSE 8080
ENTRYPOINT ["/speech-server"]
CMD ["serve", "-t", "$GOOGLE_ACCESS_TOKEN"]

Этап сборки GitLab CI

buildDockerImage:
  stage: buildImage
  dependencies:
    - build
  image:
    name: gcr.io/kaniko-project/executor:debug
    entrypoint: [""]
  variables:
    GOOGLE_APPLICATION_CREDENTIALS: /secret.json
  script:
    - echo "$GCR_SERVICE_ACCOUNT_KEY" > /secret.json
    - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $DOCKER_IMAGE:latest -v debug
  only:
    - branches
  except:
    - master

1 Ответ

0 голосов
/ 05 августа 2019

Как заметил tdensmore это, скорее всего, проблема с аутентификацией.

Так что для всех, кто пришел сюда, следующие вызовы Dockerfile и Kaniko работают отлично.

FROM ubuntu:latest as ubuntu

RUN echo "Foo" > /foo.txt

FROM ubuntu:latest

COPY --from=ubuntu /foo.txt /

CMD ["/bin/cat", "/foo.txt"]

Dockerfile можно построить, запустив

docker run -v $(pwd):/workspace gcr.io/kaniko-project/executor:latest --context /workspace --no-push
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...