Имею такой вот .gitlab-ci.yml:
stages:
- dependencies
- build
dependencies:
stage: dependencies
image: node:20.11-alpine
tags:
- mydocker
only:
changes:
- yarn.lock
script:
- yarn
- yarn global add nx
cache:
key: "$CI_COMMIT_REF_NAME"
paths:
- node_modules
build:
stage: build
tags:
- mydocker
only:
- dev
image: node:20.11-alpine
script:
- yarn build:all
cache:
key: "$CI_COMMIT_REF_NAME"
paths:
- node_modules
policy: pull
Иногда по непонятному закону, но в основном при мержреквестах, докер начинает считать, что у него есть кэш от первого задания. Докер делает вид, что находит этот кэш и даже разархивирует его, но т.к. кэша в реальности нет, то дальше задание вываливается с ошибкой:
Restoring cache 00:00
Checking cache for dev-10-non_protected...
No URL provided, cache will not be downloaded from shared cache server. Instead a local version of cache will be extracted.
Successfully extracted cache
Executing "step_script" stage of the job script 00:01
Using docker image sha256:xxxxxxxx for node:20.11-alpine with digest node@sha256:yyyyyyyy ...
$ yarn build:all
yarn run v1.22.19
$ node feature-flags/feature-flags-process.js && nx run shell:build:production && nx run-many --parallel --target build --all --exclude shell
/bin/sh: nx: not found
error Command failed with exit code 127.
Никакого кэша dev-10-non_protected в /var/lib/docker/volumes/ нет и из-за этого происходит /bin/sh: nx: not found
Подскажите, как заставить докера перестать видеть миражи?