Как исправить ошибку импорта, вызванную Docker Compose в инструменте CI? - PullRequest
3 голосов
/ 22 февраля 2020

Мне пришлось изменить services: docker в файле GitLab-CI.yml на services: docker:19.03.5-dind, потому что я имел дело с некоторыми проблемами совместимости, но теперь у бегуна GitLab-CI возникают проблемы с импортом enum для Python 2.7 в контейнер:

Running after script...
00:01
$ docker-compose down
Traceback (most recent call last):
File "/usr/bin/docker-compose", line 7, in <module>
from compose.cli.main import main
File "/usr/lib/python2.7/site-packages/compose/cli/main.py", line 35, in <module>
from ..project import get_image_digests
File "/usr/lib/python2.7/site-packages/compose/project.py", line 11, in <module>
import enum
ImportError: No module named enum
ERROR: Job failed: exit code 1

Это мой файл GitLab-CI.yml:

image: docker:stable

services:
  - docker:19.03.5-dind

stages:
  - build

before_script:
  - export REACT_APP_USERS_SERVICE_URL=http://127.0.0.1

compile:
  stage: build
  script:
    - apk add --no-cache py-pip python-dev libffi-dev openssl-dev gcc libc-dev make
    - pip install docker-compose
    - docker-compose up -d --build
    - docker-compose exec -T users python manage.py recreate_db
    - docker-compose exec -T users python manage.py seed_db
    - docker-compose exec -T users python manage.py test
    - docker-compose exec -T users flake8 project

after_script:
  - docker-compose down

Совершенно очевидно, что Docker пытается получить Python enum модуль выполнять определенные задачи и не удается. Что я должен сделать, чтобы решить эту проблему?

Редактировать:

Я добавил python3-dev в сценарий сборки, чтобы он читался следующим образом

- apk add --no-cache py-pip python-dev python3-dev libffi-dev openssl-dev gcc libc-dev make

Удивительно, но это тоже не помогло. Та же ошибка.

...