2016-11-16 84 views
1

我使用Ansible及其模塊docker_container在nodejs中啓動磁帶機測試容器。這很好,因爲我不必讓npm弄糟我的主機,我唯一的開發盒依賴是python和docker。使用Ansible docker_container,我該如何顯示標準? (標準輸出)

我需要能夠看到stdout才能看到測試已經運行。但是,Docker的--attach選項未在docker_container中公開,我無法找到任何方式從容器的正確啓動中打印出stdout

我可以回去的bash腳本啓動Docker容器,但我寧願不要......

我怎樣才能顯示一個容器的標準輸出與Ansible的docker_container模塊?

+0

它回到bash腳本。美化輸出已經死了任何解決方案,我可以想出,有可怕的比賽使用ansible,我必須重新編譯泊塢窗圖像每次反正....可能矯枉過正使用這個用例。 –

回答

0

您可以使用此命令查看碼頭集裝箱的日誌... docker logs containerName。要根據TRACE,INFO等的級別打印日誌,請嘗試supervisord。

+0

不是一個完整的答案,因爲ansible仍然會吞下所有stdout –

+0

任務'docker logs'和'docker_container'之間也存在競爭條件。通常'docker_logs'贏得... –

+0

並且在更多新聞中,ansible完全打破了'Ansible Up and Running'Oreilly書中記載的'等待'功能。 Uhoh。 –

0

請勿使用Ansible進行簡單的單元測試。 Ansible使複雜的事情變得簡單而容易。

以下bash腳本是4行,Ansible playbook已經在25行,並且由於併發問題和輸出格式問題(我確信我會找到更多)仍然不能完全運行。

Ansible對docker來說還是太新了,並不容易處理併發問題,缺少docker功能等等,而且應該只在你做一些複雜的事情時使用bash不能輕易處理的事情(如交易與遠程服務器,重試等)

#!/bin/bash 
docker build -t server-unit-test . 
docker run -it --name server-unit-test server-unit-test npm test 
docker rm server-unit-test 
相關問題