2017-06-12 4 views
0

小さなデータベースと一緒にサーバー上で実行する必要があるアルゴリズムを作成しています。urwid(ncurses)Pythonアプリケーションをドッカーで作成

ドッカー-compose.yml:

version: '3' 
services: 
    app: 
    command: python -u app.py 
    build: . 
    stdin_open: true 
    db: 
    image: mongo:latest 

Dockerfile:

FROM python:3.6.1 

COPY . /usr/src/app 

WORKDIR /usr/src/app 

RUN pip install -r requirements.txt 

アプリのncursesアルゴリズムを監視するためにTUIに端子を変換(urwid)アプリケーションです。ラップトップで別途アプリを実行すると、端末がTUIに切り替わり、期待どおりに動作します。コマンド "docker-compose up"を実行すると、ターミナルはまずdockerとmongoからstdoutを表示し、その後TUIの特定の(切り取られた)部分が表示され始めます。 TUIコンポーネントの形式が正しくなく、応答がありません。ドッカープロセスを終了すると、クリップされた部品が端末に保持されます。

考えられるヒント: TUIには、hrs:min:secの実行クロックが含まれています。クリップされた部品が表示されたら、時計は正しいですが、すぐにフリーズします。クロックは、基になるasyncioイベントループによって更新されます。

答えて

0

これは私の作品:

ドッキングウィンドウ-compose.yml

version: '3' 
services: 
    app_db: 
    container_name: appDB 
    image: mongo:latest 

    app: 
    command: python -u /usr/src/app/app.py 
    container_name: app 
    build: . 
    links: 
    - app_db 
    stdin_open: true 
    tty: true 

ドッキングウィンドウ・コン実行アプリを実行しているアプリとのmongoコンテナの両方が実行されていると私は端末インタフェースを取得アプリのコンテナに入れます。

関連する問題