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

Pau*_*l S 6 ansible docker ansible-playbook

我正在使用Ansible及其模块docker_container在nodejs中启动磁带单元测试容器。这很好,因为我不必让npm弄乱我的主机,我唯一的dev box依赖项是python和docker。

我需要能够stdout看到测试已经运行。但是,Docker的--attach选项没有公开docker_container,我无法找到任何stdout从容器启动时打印输出的方法。

我可以回到bash脚本来启动docker容器,但我不想...

如何使用Ansible的docker_container模块显示容器的标准?

nwi*_*ler 9

通过使用以下detach属性,这实际上可以与Ansible v2.5一起使用:

- 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"
Run Code Online (Sandbox Code Playgroud)

重要的是要指定detach: false捕获输出,然后使用ansible_facts.docker_container.Output路径访问结果。


cha*_*nya -3

您可以使用此命令查看 docker 容器的日志docker logs containerName...。要根据级别打印日志,如 TRACE、INFO 等,请尝试supervisord。