Docker bleibt beim Ausführen von time.sleep (1) in einer Python-Schleife hängen
Roy
Bei Verwendung von docker-compose
und python:2.7
wird es korrekt ausgeführt, wenn nur eine while 1
Schleife und time.sleep(1)
separat ausgeführt wird.
Aber es bleibt hängen, wenn sie zusammen ausgeführt werden.
Hier ist die Docker-Version und der Dateiinhalt auf meiner mac
tmp docker -v
Docker version 1.12.5, build 7392c3b
tmp cat docker-compose.yml
version: '2'
services:
test:
image: python:2.7
command: [python, -c, "print 0\nwhile 1:\n\tprint 1\n\tbreak"]
tmp docker-compose up
Creating network "tmp_default" with the default driver
Creating tmp_test_1
Attaching to tmp_test_1
test_1 | 0
test_1 | 1
tmp_test_1 exited with code 0
tmp cat docker-compose.yml
version: '2'
services:
test:
image: python:2.7
command: [python, -c, "print 0\nimport time\nprint time.sleep(1)"]
tmp docker-compose up
Recreating tmp_test_1
Attaching to tmp_test_1
test_1 | 0
test_1 | None
tmp_test_1 exited with code 0
tmp cat docker-compose.yml
version: '2'
services:
test:
image: python:2.7
command: [python, -c, "print 0\nimport time\nwhile 1:\n\tprint time.sleep(1)"]
tmp docker-compose up
Recreating tmp_test_1
Attaching to tmp_test_1
und hier bleibt es hängen.
Ich hoffe, den Grund und die Methode zu kennen, um das Problem zu beheben, danke.
fernandezcuesta
Fügen Sie -u
dem Python ein Flag hinzu, um stdout ungepuffert zu haben:
command: [python, -uc, "print 0\nimport time\nwhile 1:\n\tprint time.sleep(1)"]