Не бойтесь готовить свои docker images для тестирования/разработки.
К примеру вам нужно ocaml libelf-dev для стат анализатора flow.
Не нужно делать apt-get install внутри секции scripts, просто укажите тестовый image для этого pipeline.
Это даст вам:
Экономию времени, так как не нужно будет ждать пока установятся необходимые пакеты на CI
Вы гарантируете что у вас будет одна версия библиотек/программ между запусками CI, и коллегами
Желательно image делать двух типов: dev и latest (production).
Пример, делаем 2 image:
FROM node:12.5.1 -> dckr/node:latest
FROM dckr/node:latest -> dckr/node:dev
Тем самым, используем :dev тэг для CI, а :latest для контейнеров в проде.
Для таких вещей, советую делать отдельную группу в gitlab внутри организации, к примеру dckr или же docker.
Внутри нее репозитории для ваших нужд,
node
php
А так как docker registry встроен в gitlab, у вас к каждому репозиторию будет свой image.