- name: Start docker daemon service: name: docker state: started - name: Download busybox image docker: image: busybox state: present pull: missing docker_api_version: "1.14" - name: Run a small script in busybox docker: image: busybox state: reloaded pull: always command: "nc -l -p 2000 -e xargs -n1 echo hello" detach: True docker_api_version: "1.14" - name: Get the docker container id shell: "docker ps | grep busybox | awk '{ print $1 }'" register: container_id - name: Get the docker container ip shell: "docker inspect {{ container_id.stdout_lines[0] }} | grep IPAddress | awk -F '\"' '{ print $4 }'" register: container_ip - name: Pause a few moments because docker is not reliable pause: seconds: 40 - name: Try to access the server shell: "echo 'world' | nc {{ container_ip.stdout_lines[0] }} 2000" register: docker_output - name: check that the script ran assert: that: - "'hello world' in docker_output.stdout_lines" - name: Run a script that sets environment in busybox docker: image: busybox state: reloaded pull: always env: TEST: hello command: '/bin/sh -c "nc -l -p 2000 -e xargs -n1 echo $TEST"' detach: True docker_api_version: "1.14" - name: Get the docker container id shell: "docker ps | grep busybox | awk '{ print $1 }'" register: container_id - name: Get the docker container ip shell: "docker inspect {{ container_id.stdout_lines[0] }} | grep IPAddress | awk -F '\"' '{ print $4 }'" register: container_ip - name: Pause a few moments because docker is not reliable pause: seconds: 40 - name: Try to access the server shell: "echo 'world' | nc {{ container_ip.stdout_lines[0] }} 2000" register: docker_output - name: check that the script ran assert: that: - "'hello world' in docker_output.stdout_lines" - name: Remove the busybox image from the local docker shell: "docker rmi -f $(docker images -q)"