2017-06-12 41 views
0

我正在創建一個算法,需要在服務器上運行,以及一個小型數據庫。Docker與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的(urwid)應用程序,其將所述終端到TUI以監測算法。當我在我的筆記本電腦上單獨運行應用程序時,終端變爲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 

當運行泊塢窗,撰寫運行的應用程序,無論是應用程序和蒙戈容器運行,我得到一個終端接口放入應用程序容器中。