2016-08-09 52 views
2

Ich führe zwei Python-Dienste in Docker. Beide Dienste erfordern ein gemeinsames Argument, das ich während "docker run" zur Verfügung stelle.Wie ein Argument an Supervisor in Docker übergeben?

Derzeit erreiche ich dies, indem ich beide Dienste von einem Shell-Skript aufrufen. Aber ich denke, die richtige Lösung wäre die Verwendung von Supervisor in Docker und führen Sie beide Dienste durch.

möchte ich so etwas wie dies zu erreichen:

[program:A] 
command=python -m A.py <argument> 

[program:B] 
command=python -m B.py <argument> 

Die dockerfile sieht wie folgt aus:

COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf 
CMD ["/usr/bin/supervisord"] 

Wie kann ich das Argument Vorgesetzten übergeben?

Antwort

3

Sie könnten eine Umgebungsvariable verwenden: von supervisor doc

Umgebungsvariablen, die zu der Zeit in der Umwelt vorhanden sind, dass supervisord gestartet wird, kann in der Konfigurationsdatei verwendet werden, um die String-Ausdruck Syntax Python %(ENV_X)s:

[program:example] 
command=/usr/bin/example --loglevel=%(ENV_LOGLEVEL)s 

In dem obigen Beispiel wird der Ausdruck %(ENV_LOGLEVEL)s WO Wird auf den Wert der Umgebungsvariablen LOGLEVEL erweitert.

In Ihrem Fall könnte Ihr gemeinsames Argument in einer Umgebungsvariablen festgelegt werden, die an den Container mit einer docker run -d -e "COMMON_ARG=myarg" übergeben wird.