У меня есть Dockerfile с двумя этапами;На первом этапе создается приложение реагирования из исходного кода, а на втором этапе создаются и добавляются сервер NGINX:
FROM kkarczmarczyk/node-yarn as builder
COPY . /workspace
RUN set -ex \
yarn global add create-react-app \
&& yarn install \
&& GENERATE_SOURCEMAP=false yarn build
FROM nginx:mainline-alpine
COPY ./nginx-default.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /workspace/build /var/www/html/
Я также использую gitlab-ci, и мне бы хотелось иметь несколько этапов:Сборка, тестирование и развертывание.Но я не знаю, как разделить этап сборки и тестирования, так как я использую многоступенчатый Dockerfile.Проблема заключается в том, что все JS-тесты (для React) необходимо выполнить до того, как будет выполнена «сборка пряжи», и сборка будет скопирована на стадию стыковки секунд.
Решением может быть просто выполнить yarn test
до запуска yarn build
.Но я действительно хотел бы провести отдельный этап тестирования gitlab-ci.
Возможно ли это?Или мне нужно разделить этапы Dockerfile на несколько Dockerfile?