2017-02-14 10 views
0

docker-composepython:2.7を使用すると、while 1ループとtime.sleep(1)を別々に実行すると正しく動作します。pythonループでtime.sleep(1)を実行するとドッキングが固まる

しかし、それらを一緒に実行するとスタックします。ここで

ドッキングウィンドウのバージョンと私の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 

、ここにstucks上のファイルの内容です。

理由とそれを修正する方法を知りたいと思って、ありがとう。

答えて

1

は、バッファリングされていない標準出力を持っているためにのpythonに-uフラグを追加します。

command: [python, -uc, "print 0\nimport time\nwhile 1:\n\tprint time.sleep(1)"] 
+0

それは動作します。そして、Pythonのmanページには内部バッファリングの詳細があります。ありがとう。 – Roy

関連する問題