#python #requirements.txt #pre-build-event #gitpod
#python #requirements.txt #предварительная сборка-событие #gitpod
Вопрос:
Всякий раз, когда я открываю свое рабочее пространство gitpod, мне приходится переустанавливать requirements.txt досье. Я читал о gitpod.файл yml и вижу, что я должен добавить его туда, чтобы зависимости устанавливались во время предварительной сборки.
Я не могу найти никаких примеров этого, поэтому я просто хочу посмотреть, правильно ли я это понимаю.
Прямо сейчас мой gitpod.файл yml выглядит следующим образом…
image:
file: .gitpod.Dockerfile
# List the start up tasks. Learn more https://www.gitpod.io/docs/config-start-tasks/
tasks:
- init: echo 'init script' # runs during prebuild
command: echo 'start script'
# List the ports to expose. Learn more https://www.gitpod.io/docs/config-ports/
ports:
- port: 3000
onOpen: open-preview
vscode:
extensions:
- ms-python.python
- ms-azuretools.vscode-docker
- eamodio.gitlens
- batisteo.vscode-django
- formulahendry.auto-close-tag
- esbenp.prettier-vscode
Должен ли я просто добавить эти две новые строки ‘init’ и ‘command’ в разделе задачи?
image:
file: .gitpod.Dockerfile
# List the start up tasks. Learn more https://www.gitpod.io/docs/config-start-tasks/
tasks:
- init: echo 'init script' # runs during prebuild
command: echo 'start script'
- init: pip3 install -r requirements.txt
command: python3 manage.py
# List the ports to expose. Learn more https://www.gitpod.io/docs/config-ports/
ports:
- port: 3000
onOpen: open-preview
vscode:
extensions:
- ms-python.python
- ms-azuretools.vscode-docker
- eamodio.gitlens
- batisteo.vscode-django
- formulahendry.auto-close-tag
- esbenp.prettier-vscode
Большое спасибо за вашу помощь. Я все еще новичок во всем этом и пытаюсь разобраться.
Ответ №1:
Чтобы установить требования в сборке, вы должны установить их в Dockerfile. Исключением являются редактируемые установки, pip install -e .
.
Например, чтобы установить пакет с именем <package-name>, добавьте эту строку в .gitpod.Dockerfile
:
RUN python3 -m pip install <package-name>
Установка из файла требований немного сложнее, потому что Dockerfile не может «видеть» файл во время сборки. Одним из обходных путей является предоставление Dockerfile URL-адреса файла требований в репозитории.
RUN python3 -m pip install -r https://gitlab.com/<gitlab-username>/<repo-name>/-/raw/master/requirements.txt
Редактировать: станьте свидетелем моей неловкой борьбы с той же проблемой сегодня: https://github.com/gitpod-io/gitpod/issues/7306