2017-11-23 3 views
1

Ok, ich feuern einige Docker Run-Befehle über Subprozessaufrufe (in einer GUI). Der Aufruf sieht wie folgt aus:Docker Run über Subprozess

import subprocess 
a = subprocess.run(args, stdout=subprocess.PIPE) 
output = a.stdout.decode().split("\n") 

Der Prozess Wohnen im Docker Behälter zum stdout einloggen würde, und ich dachte, ich könnte dann meine Log-Meldungen holen. Ich bin mit dem Docker Lauf -a Befehl, wie in

/usr/bin/docker run --rm -a stdout xxxx/pyrisk:latest python prices.py 

Antwort

2

Ich würde vorschlagen, docker.py verwenden Bibliothek statt direkt aufrufen Docker Kommandos über subprocess. mehr Siehe hier: https://github.com/docker/docker-py

Ihr Fall würde wie folgt aussehen:

import docker 
client = docker.from_env() 
stdout = client.containers.run(image="xxxx/pyrisk:latest",command="python prices.py", remove=True)