У меня есть репозиторий на основе Python, и я пытаюсь настроить Gitlab CI для создания образа Docker с использованием Dockerfile и отправки изображения в реестр Gitlab.
Перед сборкой и развертыванием образа Docker в реестр я хочу запустить свои модульные тесты с использованием Python. Вот мой текущий файл gitlab-ci.yml, который выполняет только тестирование:
image: python:3.7-slim
before_script:
- pip3 install -r requirements.txt
test:
variables:
DJANGO_SECRET_KEY: some-key-here
script:
- python manage.py test
build:
DO NOT KNOW HOW TO DO IT
Я проверяю некоторые шаблоны с сайта Gitlab и нашел один для Docker:
# This file is a template, and might need editing before it works on your project.
# Official docker image.
image: docker:latest
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
build-master:
stage: build
script:
- docker build --pull -t "$CI_REGISTRY_IMAGE" .
- docker push "$CI_REGISTRY_IMAGE"
only:
- master
build:
stage: build
script:
- docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" .
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG"
except:
- master
Однако, оба из них не работают для меня, потому что мне нужен Python для тестирования и докер для построения образа. Есть ли способ сделать это с помощью Gitlab CI без создания собственного образа Docker, на котором установлены и Python, и Docker?