Можно ли установить пакеты Haskell и не-Haskell в приложении Python / Django, развернутом в Heroku? - PullRequest
0 голосов
/ 25 марта 2019

Мое приложение Django использует пакеты, связанные с Haskell, такие как HLint, и некоторые не-Haskell пакеты, такие как graphviz.Я использую команду shlex в своем приложении для вызова скрипта bash, который затем вызывает пакет.Локально работает.

Однако я также развернул приложение в Heroku, используя Travis - там, представления, предназначенные для активации сценариев bash, не запускаются.Я запускаю скрипт before_deploy для установки необходимых пакетов, и сборка Travis сообщает, что они успешно установлены;Я не думаю, что пакеты доступны для приложения Heroku.

Мой вопрос: возможно ли наличие необходимых пакетов в приложении Heroku?И если да, то как я могу настроить Heroku для их запуска через bash или каким-либо другим способом?Любая помощь будет очень признательна!

Может быть полезно знать, что приложение работает в среде Linux и что я использую один пакет сборки Python.

Код

Мой .travis.yml файл выглядит следующим образом:

sudo: true
language: python
python:
- '3.6'
env:
- DJANGO=2.1.5
install:
- pip install -q Django==$DJANGO
- pip install -q -r requirements.txt
script:
- python manage.py test
before_deploy:
- "./before_deploy.sh"
deploy:
  provider: heroku
  api_key:
    secure: <REDACTED>
  app: hasnetdt-stage
notifications:
  email: false

А вот сценарий before_deploy.sh для справки:

#!/bin/bash

sudo add-apt-repository -y ppa:hvr/ghc
sudo apt-get update
sudo apt-get install -y cabal-install-1.22 ghc-7.10.2
sudo apt-get install -y graphviz

export PATH=~/.cabal/bin:/opt/cabal/1.22/bin:/opt/ghc/7.10.2/bin:$PATH
cabal sandbox init
cabal update
cabal install alex happy
cabal install hindent hlint

Sidenote:

Когда я попытался развернуть локально (то есть с git push heroku master), журналы Heroku сказали:

2019-03-24T18:41:29.637402+00:00 app[web.1]: ./static/scripts/prettify.sh: line 3: hindent: command not found
2019-03-24T18:41:29.644886+00:00 app[web.1]: ./static/scripts/linter.sh: line 3: hlint: command not found

Но это может быть потому, что я развернул его локально, а не с Travis, поэтому сценарий before_deploy не запущен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...