2017-03-04 157 views
1

我正在嘗試使用docker-compose構建服務,但使用docker-compose開始的容器在撰寫腳本結束時立即停止。但是,當我創建容器使用碼頭運行相同的服務圖像它正在工作。docker-compose up正在啓動容器並立即停止它們

這裏是我撰寫腳本:

version: '2.1' 

networks: 
composetestnetwork: 
    driver: bridge 
    ipam: 
    driver: default 
    config: 
    - subnet: 172.19.0.0/16 
     gateway: 172.19.0.1 

services: 
composetestdb: 
    build: 
    context: . 
    dockerfile: Dockerfile-testdb 
    cap_add: 
    - ALL 
    container_name: my-db-compose-container 
    labels: 
    db.description: "This is a test db" 
    volumes: 
    - c:/Users:/data 
    networks: 
    composetestnetwork: 
    ipv4_address: 172.19.0.5 
    ports: 
    - "3306:3306" 
    command: 'bash' 

可以做些什麼來解決這個問題。

+0

不確定你實際做了什麼,'docker-compose up'繼續運行並顯示已啓動服務的日誌。當你停下來時,容器也將停止。 – Henry

+0

我只是想通過撰寫創建容器並使用它。就docker文件而言......這是正確的,因爲我可以從圖像創建容器並通過docker run使用它 –

+0

當我調用docker-compose up時...日誌狀態服務已啓動..並且在執行後入口點腳本日誌狀態退出狀態碼0 –

回答

11

如果您使用bash作爲command,但沒有終端,它將立即退出。這是因爲當bash啓動時,如果沒有連接終端,並且沒有腳本或其他命令來執行,它就無關緊要,因此它退出(按設計)。

您可以使用不同的command,也可以將終端連接到tty: true作爲此服務定義的一部分。

services: 
    composetestdb: 
    tty: true 
    ... 
+0

謝謝,它爲我工作,但我必須添加** stdin_open:true **以及** tty:true ** –

相關問題