简体   繁体   中英

Failing to start nginx container when volumes is used (using ansible and docker-compose)

I am trying to start an nginx container using ansible with docker-compose from one machine to a different machine.

Whenever I include nginx.conf to the volumes, there is an error which I do not understand. The container is only created but not starting.

MACHINE-1

Command to run the playbook: ansible-playbook -v nginx-playbook.yml -l ubuntu_node_1 -u root

my playbook:

- name: nginx-docker_compose
  hosts: all
  gather_facts: yes
  become: yes
  tasks:
    - community.general.docker_compose:
        project_name: nginx
        definition:
          version: '2'
          services:
            web:
              image: nginx:latest
              volumes:
                - ./vars/nginx.conf:/etc/nginx/nginx.conf:ro
              ports:
                - "8080:80"

[EDITED]

Here is the error:

Using /etc/ansible/ansible.cfg as config file

PLAY [nginx-docker_compose] ********************************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************************************
[DEPRECATION WARNING]: Distribution Ubuntu 18.04 on host 172.31.15.176 should use /usr/bin/python3, but is using /usr/bin/python for backward compatibility with prior
Ansible releases. A future Ansible release will default to using the discovered platform python for this host. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information. This feature will be removed in version 2.12. Deprecation
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ok: [172.31.15.176]

TASK [community.general.docker_compose] ********************************************************************************************************************************
fatal: [172.31.15.176]: FAILED! => {"changed": false, "errors": [], "module_stderr": "Recreating nginx_web_1 ... \n\u001b[1A\u001b[2K\nRecreating nginx_web_1 ... \n\u001b[1B", "module_stdout": "", "msg": "Error starting project Encountered errors while bringing up the project."}

PLAY RECAP *************************************************************************************************************************************************************
172.31.15.176              : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

[root@ip-172-31-12-130 docker_server]# ansible-playbook -v nginx-playbook.yml -l ubuntu_node_1 -u root
Using /etc/ansible/ansible.cfg as config file

PLAY [nginx-docker_compose] ********************************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************************************
[DEPRECATION WARNING]: Distribution Ubuntu 18.04 on host 172.31.15.176 should use /usr/bin/python3, but is using /usr/bin/python for backward compatibility with prior
Ansible releases. A future Ansible release will default to using the discovered platform python for this host. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information. This feature will be removed in version 2.12. Deprecation
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ok: [172.31.15.176]

TASK [community.general.docker_compose] ********************************************************************************************************************************
fatal: [172.31.15.176]: FAILED! => {"changed": false, "errors": [], "module_stderr": "Recreating 9b102bbf98c2_nginx_web_1 ... \n\u001b[1A\u001b[2K\nRecreating 9b102bbf98c2_nginx_web_1 ... \n\u001b[1B", "module_stdout": "", "msg": "Error starting project Encountered errors while bringing up the project."}

PLAY RECAP *************************************************************************************************************************************************************
172.31.15.176              : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

NOTE: When I try to run nginx container directly using docker-compose with the same config on MACHINE-2, it works. I believe there are some permission issues happening while trying to execute the playbook from MACHINE-1 to MACHINE-2 but can not figure it out.

I am trying to start an nginx container using ansible with docker-compose from one machine to a different machine.

Whenever I include nginx.conf to the volumes, there is an error which I do not understand. The container is only created but not starting.

MACHINE-1

Command to run the playbook: ansible-playbook -v nginx-playbook.yml -l ubuntu_node_1 -u root

my playbook:

- name: nginx-docker_compose
  hosts: all
  gather_facts: yes
  become: yes
  tasks:
    - community.general.docker_compose:
        project_name: nginx
        definition:
          version: '2'
          services:
            web:
              image: nginx:latest
              volumes:
                - ./vars/nginx.conf:/etc/nginx/nginx.conf:ro
              ports:
                - "8080:80"

[EDITED]

Here is the error:

Using /etc/ansible/ansible.cfg as config file

PLAY [nginx-docker_compose] ********************************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************************************
[DEPRECATION WARNING]: Distribution Ubuntu 18.04 on host 172.31.15.176 should use /usr/bin/python3, but is using /usr/bin/python for backward compatibility with prior
Ansible releases. A future Ansible release will default to using the discovered platform python for this host. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information. This feature will be removed in version 2.12. Deprecation
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ok: [172.31.15.176]

TASK [community.general.docker_compose] ********************************************************************************************************************************
fatal: [172.31.15.176]: FAILED! => {"changed": false, "errors": [], "module_stderr": "Recreating nginx_web_1 ... \n\u001b[1A\u001b[2K\nRecreating nginx_web_1 ... \n\u001b[1B", "module_stdout": "", "msg": "Error starting project Encountered errors while bringing up the project."}

PLAY RECAP *************************************************************************************************************************************************************
172.31.15.176              : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

[root@ip-172-31-12-130 docker_server]# ansible-playbook -v nginx-playbook.yml -l ubuntu_node_1 -u root
Using /etc/ansible/ansible.cfg as config file

PLAY [nginx-docker_compose] ********************************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************************************
[DEPRECATION WARNING]: Distribution Ubuntu 18.04 on host 172.31.15.176 should use /usr/bin/python3, but is using /usr/bin/python for backward compatibility with prior
Ansible releases. A future Ansible release will default to using the discovered platform python for this host. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information. This feature will be removed in version 2.12. Deprecation
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ok: [172.31.15.176]

TASK [community.general.docker_compose] ********************************************************************************************************************************
fatal: [172.31.15.176]: FAILED! => {"changed": false, "errors": [], "module_stderr": "Recreating 9b102bbf98c2_nginx_web_1 ... \n\u001b[1A\u001b[2K\nRecreating 9b102bbf98c2_nginx_web_1 ... \n\u001b[1B", "module_stdout": "", "msg": "Error starting project Encountered errors while bringing up the project."}

PLAY RECAP *************************************************************************************************************************************************************
172.31.15.176              : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

NOTE: When I try to run nginx container directly using docker-compose with the same config on MACHINE-2, it works. I believe there are some permission issues happening while trying to execute the playbook from MACHINE-1 to MACHINE-2 but can not figure it out.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM