docker_container: do not send wrong host IP for duplicate ports (#1214) (#1215)

* DRY.

* Port spec can be a list of port specs.

* Add changelog fragment.

* Add test.

(cherry picked from commit 846fc8564b)
This commit is contained in:
Felix Fontein
2025-11-26 08:08:38 +01:00
committed by GitHub
parent a049898f19
commit dc0a554966
3 changed files with 73 additions and 10 deletions
@@ -277,6 +277,58 @@
- published_ports_2 is not changed
- published_ports_3 is changed
####################################################################
## published_ports: duplicate ports ################################
####################################################################
- name: published_ports -- duplicate ports
community.docker.docker_container:
image: "{{ docker_test_image_alpine }}"
command: '/bin/sh -c "sleep 10m"'
name: "{{ cname }}"
state: started
published_ports:
- 8000:80
- 10000:80
register: published_ports_1
- name: published_ports -- duplicate ports (idempotency)
community.docker.docker_container:
image: "{{ docker_test_image_alpine }}"
command: '/bin/sh -c "sleep 10m"'
name: "{{ cname }}"
state: started
published_ports:
- 8000:80
- 10000:80
force_kill: true
register: published_ports_2
- name: published_ports -- duplicate ports (idempotency w/ protocol)
community.docker.docker_container:
image: "{{ docker_test_image_alpine }}"
command: '/bin/sh -c "sleep 10m"'
name: "{{ cname }}"
state: started
published_ports:
- 8000:80/tcp
- 10000:80/tcp
force_kill: true
register: published_ports_3
- name: cleanup
community.docker.docker_container:
name: "{{ cname }}"
state: absent
force_kill: true
diff: false
- ansible.builtin.assert:
that:
- published_ports_1 is changed
- published_ports_2 is not changed
- published_ports_3 is not changed
####################################################################
## published_ports: IPv6 addresses #################################
####################################################################