J'essaie de définir une variable d'environnement dans ma configuration de superviseur en utilisant la valeur d'une variable d'environnement existante. La variable existante est REDIS_PORT_6379_TCP_ADDR
(provient d'un conteneur lié Docker) ; la valeur est une adresse IP (par exemple 172.17.0.5
). C'était ma première tentative naïve:
[program:sidekiq]
user=web
directory=/var/www
environment=REDIS_URL=redis://$REDIS_PORT_6379_TCP_ADDR:6379/0
command=bundle exec sidekiq -c 50
redirect_stderr=true
autorestart=true
Ce qui ne fonctionne pas du tout car superviseurd ne peut pas l'analyser :
$ supervisord -c /etc/supervisor/supervisord.conf -n
Error: Unexpected end of key/value pairs
For help, use /usr/bin/supervisord -h
Ensuite, j'ai essayé de citer la section environnement:
environment=REDIS_URL="redis://$REDIS_PORT_6379_TCP_ADDR:6379/0"
Cela n'a pas fonctionné car la variable n'a pas été interpolée avant d'être transmise à mon programme :
2014-06-16T03:08:35Z 240 TID-oqy09ga9c WARN: the scheme redis does not accept registry part: $REDIS_PORT_6379_TCP_ADDR:6379 (or bad hostname?)
Ensuite, selon cette réponse StackOverflow , j'ai essayé d'utiliser la syntaxe %(ENV)
:
environment=REDIS_URL="redis://%(ENV_REDIS_PORT_6379_TCP_ADDR):6379/0"
Encore une fois, il ne peut pas l'analyser:
$ supervisord -c /etc/supervisor/supervisord.conf -n
Error: Format string 'REDIS_URL="redis://%(ENV_REDIS_PORT_6379_TCP_ADDR):6379/0"' for 'environment' is badly formatted
For help, use /usr/bin/supervisord -h
Même résultat si je supprime les guillemets :
$ supervisord -c /etc/supervisor/supervisord.conf -n
Error: Format string 'REDIS_URL=redis://%(ENV_REDIS_PORT_6379_TCP_ADDR):6379/0' for 'environment' is badly formatted
For help, use /usr/bin/supervisord -h
J'ai essayé les mêmes choses en mettant export
dans la section command
:
[program:sidekiq]
user=web
directory=/var/www
command="export REDIS_URL=redis://$REDIS_PORT_6379_TCP_ADDR:6379/0; bundle exec sidekiq -c 50"
redirect_stderr=true
autorestart=true
Résultat:
$ supervisord -c /etc/supervisor/supervisord.conf -n
2014-06-16 03:35:00,170 WARN Included extra file "/etc/supervisor/conf.d/sidekiq.conf" during parsing
2014-06-16 03:35:00,193 INFO RPC interface 'supervisor' initialized
2014-06-16 03:35:00,194 INFO supervisord started with pid 346
2014-06-16 03:35:01,197 INFO spawnerr: can't find command 'export REDIS_URL=redis://$REDIS_PORT_6379_TCP_ADDR:6379/0; bundle exec sidekiq -c 50'
[program:sidekiq]
user=web
directory=/var/www
command="export REDIS_URL=redis://%(ENV_REDIS_PORT_6379_TCP_ADDR):6379/0; bundle exec sidekiq -c 50"
redirect_stderr=true
autorestart=true
Résultat:
$ supervisord -c /etc/supervisor/supervisord.conf -n
Error: Format string '"export REDIS_URL=redis://%(ENV_REDIS_PORT_6379_TCP_ADDR):6379/0; bundle exec sidekiq -c 50"' for 'command' is badly formatted
For help, use /usr/bin/supervisord -h
Qu'est-ce que je fais mal?
je suis en 3.0b2 :
$supervisord --version
3.0b2
Je suppose que mes faibles capacités en Python se manifestent. J'avais besoin d'ajouter un s
à la fin de %()
pour formater la valeur sous forme de chaîne. Cette config fonctionne, enfin :
[program:sidekiq]
user=web
directory=/var/www
environment=REDIS_URL=redis://%(ENV_REDIS_PORT_6379_TCP_ADDR)s:6379/0
command=bundle exec sidekiq -c 50
redirect_stderr=true
autorestart=true
Vous utilisez la mauvaise version. Cette syntaxe est correctement prise en charge par le superviseur 3.2.
3.2 n'existait pas encore quand j'ai écrit ceci il y a plus de 4 ans 🙄
Le jeu. 18 octobre 2018 à 01:49 Dumitrescu Robert [email protected]
a écrit:
Vous utilisez la mauvaise version. Cette syntaxe est correctement prise en charge par
superviseur 3.2.—
Vous recevez ceci parce que vous avez modifié l'état d'ouverture/fermeture.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/Supervisor/supervisor/issues/447#issuecomment-430894666 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AAJXc_Y0Zd4ykEzNc7eH4CZhz09RTVLNks5umCRhgaJpZM4CEaUX
.
Commentaire le plus utile
3.2 n'existait pas encore quand j'ai écrit ceci il y a plus de 4 ans 🙄
Le jeu. 18 octobre 2018 à 01:49 Dumitrescu Robert [email protected]
a écrit: