[英]How to use docker_image and docker_container module in Ansible
[英]Using Ansible docker_container, how can I display standard out? (stdout)
我正在使用Ansible及其模塊docker_container
在docker_container
中啟動磁帶單元測試容器。 這很好,因為我沒有讓npm搞砸我的主機,我唯一的開發盒依賴是python和docker。
我需要能夠看到stdout
才能看到測試已經運行。 但是,Docker的--attach
選項沒有在docker_container
中docker_container
,我找不到任何方法從容器的ansible啟動中打印出stdout
。
我可以回到bash腳本來啟動docker容器,但我寧願不...
如何使用Ansible的docker_container模塊顯示容器的標准?
這實際上適用於Ansible v2.5,使用detach
屬性:
- name: Run the tests
docker_container:
detach: false
name: "foo-container"
command: npm test
register: docker_container_output
- name: Show test output
debug:
msg: "{{ docker_container_output.ansible_facts.docker_container.Output }}"
- name: Remove the test container
docker_container:
state: absent
name: "foo-container"
指定detach: false
以捕獲輸出,然后使用ansible_facts.docker_container.Output
路徑訪問結果非常重要。
不要使用Ansible來運行簡單的單元測試。 Ansible使復雜的事情簡單易行。
以下bash腳本是4行,Ansible playbook已經處於25行,由於並發問題和輸出格式問題仍未完全正常運行(我相信我會找到更多)。
對於docker的Ansible仍然太新,不易處理並發問題,缺少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
您可以使用此命令查看docker logs containerName
... docker logs containerName
。 要根據TRACE,INFO等級別打印日志,請嘗試supervisord。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.