使用Ansible docker_container,如何显示标准输出? (标准输出)

我正在使用Ansible及其模块docker_container在nodejs中启动磁带单元测试容器.这很好,因为我没有让npm搞砸我的主机,我唯一的开发盒依赖是
python和docker.

我需要能够看到stdout才能看到测试已经运行.但是,Docker的–attach选项没有在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路径访问结果非常重要.

点赞