web-dev-qa-db-fra.com

mettre en place pipenv avec superviseur

Je souhaite déployer un serveur de développement, mais le démarrage du céleri et du gunicorn pose un problème. J'utilise des scripts pour mes besoins

céleri.sh

#!/bin/bash 
cd /home/dev/app
pipenv run celery -A config worker -B -l info

et start.sh pour gunicorn

#!/bin/bash
cd /home/dev/app
pipenv run gunicorn config.wsgi:application -b 127.0.0.1:8005 -w 2 -t 60 \

    --env Django_SETTINGS_MODULE=$Django_SETTINGS_MODULE \

    --env DSN=$SENTRY_DSN \

    --env DATABASE_URL=$DATABASE_URL \

    --log-file - \

    --error-logfile /home/dev/app/errors.log 

Aussi voici ma config pour superviseur

[program:back]
directory=/home/dev/app/
command=/home/dev/bin/start
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true


[program:celery]
directory=/home/dev/app/
command=/home/dev/bin/celery
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true

Lorsque j'exécute Sudo supervisorctl start celery, le message d'erreur suivant s'affiche: /home/dev/bin/celery: line 3: pipenv: command not found

J'ai aussi ajouté les lignes suivantes, comme le dit la documentation pipenv ( https://pipenv.readthedocs.io/en/latest/diagnose/ )

[supervisord]
environment=LC_ALL='en_US.UTF-8',LANG='en_US.UTF-8'

METTRE À JOUR

Changé ma configuration de superviseur:

[program:back]
directory=/home/dev/app/
command=pipenv run gunicorn config.wsgi:application --bind 127.0.0.1:8005
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true


[program:celery]
directory=/home/dev/app/
command=pipenv run celery -A config:celery_app worker -B -l info
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true

Et maintenant je reçois une erreur:

back: ERROR (no such file)
8
Ernst

Vous devez donner le chemin explicite de gunicorn. Bien que je ne sois pas sûr de pipenv, mais l'erreur que vous obtenez est due au fait que le superviseur essaie de trouver gunicorn dans le répertoire. Vous devriez changer votre fichier de configuration en quelque chose comme ceci:

[program:back]
directory=/home/dev/app/
command=/path/to/pipenv run /path/to/gunicorn config.wsgi:application --bind 127.0.0.1:8005

Ensuite, vous devez redémarrer votre supervisord afin de charger les paramètres.

Sudo service supervisord reload

4
argo

dans votre fichier de configuration. remplacez command= par bash -c suivi du chemin complet et du fichier à exécuter Cela devrait faire l'affaire 

0
Stanley