Вы должны использовать базовое изображение, содержащее все, что вам нужно.Установка чего-либо вручную должна работать в принципе, но излишне будет стоить вам минут конвейера GitLab CI.
Для python 3.7 вы можете сделать следующее:
image: python:3.7-alpine3.9
Проверьте DockerHub для получения списка всехДоступные образы Python: https://hub.docker.com/_/python
Если вам нужно протестировать разные версии Python, я рекомендую разбить ваши задачи на разные задания CI GitLab, каждое из которых использует свой базовый образ Python:
test-python-3-7:
image: python:3.7-alpine3.9
script:
- ./run_my_tests.sh
test-python-2.7:
image: python:2.7.16-alpine3.8
script:
- ./run_my_tests.sh
Если вам абсолютно необходимо установить материал самостоятельно, поскольку нет подходящего образа, я все равно рекомендую вам создать образ со всем необходимым, загрузить его в DockerHub или собственный реестр контейнеров GitLab, а затем использовать его в своем CIтрубопроводы.