Nous avons quelques bibliothèques internes que nous avons divisées (pour plusieurs raisons, principalement administratives ou pour avoir la possibilité de les ouvrir facilement ultérieurement). Ils vivent dans des référentiels privés GitHub, si cela importe. P>
J'aimerais déployer une application à Heroku pour l'essayer. Cela dépend de l'une de ces bibliothèques. P>
Je suis censé spécifier mes dépendances dans les exigences.txt. C'est facile pour les trucs pypi-installables, mais que dois-je faire pour ces dépendances internes? P>
Je pourrais être soit dirigé mon propre miroir pypi privé qui a ce genre de choses, ou je pourrais utiliser des packages modifiables (même si la documentation dit qu'ils ne devraient pas être utilisées dans la production). P>
Quel est le moyen approprié de le faire? P>
4 Réponses :
dans Entre-temps, vous pouvez cloner la bibliothèque et créer un environnement virtuel et installer à l'intérieur de l'env. Heroku device a des articles, y compris Virtual env Configuration. p> exigences.txt code> Vous pouvez mentionner comme ce qui suit. p>
git + git: //github.com/kracekumar/blaze.git code> p>
Comment cela aide-t-il pour un repo privé, cependant?
Si cela ne fonctionne pas, vous pouvez l'installer à partir de la source après avoir exécuté SCP code>.
Vous pouvez écrire, disons, "-e git + ssh: //git@..../pil#egg=pil" au lieu de "PIL" dans votre configuration requise.txt et ça va le chercher à partir de là. p>
Cependant, cela vous obligerait à spécifier la clé privée SSH à utiliser par Heroku lors de la tirage. P>
GitHub permet une authentification de base HTTP sur les repos git.
Donc, vous pouvez ajouter une ligne comme celle-ci: p> et tout fonctionnera correctement :) P > p>
Impressionnant! Pourquoi Heroku dit-il que vous ne devriez pas avoir -e dans votre dossier de vos exigences cependant? Je ne vois pas le problème lorsque vous spécifiez manuellement une balise / libération (ou si vous avez un processus de développement qui signifie maître est toujours bon à partir).
Parce que les exigences modifiables peuvent se casser parfois. Pas spécifique à l'heroku :)
Mais comment puis-je faire cela sans vous engager mon mot de passe?
Cela semble violer la règle habituelle de «contraintes de Secrets». :)
Il y a un buildpack pour juste ceci: HTTPS: // éléments .heroku.com / Buildpacks / Débitor / SSH-Private-Key-Buildpack
Faites ceci: P>
$ heroku buildpacks:set --index 1 https://github.com/debitoor/ssh-private-key-buildpack.git $ heroku buildpacks:add heroku/python $ heroku config:set SSH_KEY="$(cat path/to/your/keys/id_rsa | base64)"