ci? На текущий момент использую kaniko, и composer install/npm install выполняется внутри Dockerfile, но кэш для них "не работает" (новый job = новое скачивание, а предыдущие шаги кэшируются корректно). Поискав решения в пределах чата обнаружил советы использовать в gitlab ci ключ cache, но в таком случае необходимо создавать отдельный job который это будет делать, так как в job build (где собирается образ используя kaniko) используется image kaniko.
Используемые флаги kaniko для кэша:
--cache=true
--cache-ttl=24h
Собирай ноду в самом пайплайне. А на стадию с канико передавай уже конечные артефакты
Т.е не считается костылем создание отдельной job под кэш?
это джоба не под кэш, а под npm install. там кэш указываешь, да
Понял, спасибо, в таком случае есть ли смысл повторять npm install внутри dockerfile? Просто в dockerfile использую отдельный stage для npm build, а полученные после этого файлы копирую на другой шаг (multi-stage)
тут все ситуативно. я одно время билдил на удаленном билдките, и там был канал так себе до него. так вот мне было дешевле по времени выполнить npm install внутри докерфайла. просто быстрее. чем передать через COPY все. но правильнее, наверное все таки брать из кеша. таким образом ты гарантируешь идентичность зависимостей
Обсуждают сегодня