и его загрузки в registry
Ниже вырезка из CI:
...
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
script:
- docker pull $CI_REGISTRY/$CI_PROJECT_PATH:latest || true
- docker build --cache-from $CI_REGISTRY/$CI_PROJECT_PATH:latest --tag $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_SHORT_SHA --tag $CI_REGISTRY/$CI_PROJECT_PATH:latest --file ./Dockerfile .
- docker push $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_SHORT_SHA
- docker push $CI_REGISTRY/$CI_PROJECT_PATH:latest
needs:
- job: lint
rules:
- if: $CI_COMMIT_REF_NAME == "dev" && $CI_PIPELINE_SOURCE == "push"
tags:
- test-docker
Моя проблема следующая:
опция —cache-from не работает так, как я предполагал и билд происходит "с нуля"
Протестировал локально - всё ок, опция отрабатывает как и следовало бы ожидать (используется кэш), на сборку уходят секунды, но в CI воспроизвести тоже самое не получается
Не могли бы подсказать, что я делаю не так?
какой экзекутор?
docker executor
ну у тебя внутри контейнера наверное нет этого образа, поэтому сборка и не ускоряется, а локально он есть
- docker pull $CI_REGISTRY/$CI_PROJECT_PATH:latest || true разве не решает этот вопрос? Т.е. сначала pull-им, затем уже используем кэш спуленного образа и в build шаге вроде бы запись importing cache manifest имеется
А, хмм
Обсуждают сегодня