{"id":24884249,"url":"https://github.com/dreknix/ansible-role-docker-deploy","last_synced_at":"2026-02-12T14:10:48.488Z","repository":{"id":174497327,"uuid":"652319858","full_name":"dreknix/ansible-role-docker-deploy","owner":"dreknix","description":"Ansible role for deploying Docker compose instances","archived":false,"fork":false,"pushed_at":"2025-01-09T19:32:53.000Z","size":31,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T09:46:55.372Z","etag":null,"topics":["ansible","ansible-role","docker","docker-compose"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dreknix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-11T19:19:35.000Z","updated_at":"2025-01-11T13:00:07.000Z","dependencies_parsed_at":"2025-03-27T09:42:48.768Z","dependency_job_id":"e90c3d10-850a-454f-a57c-eade1b816b40","html_url":"https://github.com/dreknix/ansible-role-docker-deploy","commit_stats":null,"previous_names":["dreknix/ansible-role-docker-deploy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreknix%2Fansible-role-docker-deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreknix%2Fansible-role-docker-deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreknix%2Fansible-role-docker-deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreknix%2Fansible-role-docker-deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dreknix","download_url":"https://codeload.github.com/dreknix/ansible-role-docker-deploy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248766736,"owners_count":21158301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-role","docker","docker-compose"],"created_at":"2025-02-01T14:26:37.900Z","updated_at":"2026-02-12T14:10:48.482Z","avatar_url":"https://github.com/dreknix.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ansible Role - Docker Deploy\n\nAnsible role for deploying Docker compose instances\n\n## Using in a Playbook\n\nFor each Docker compose instance a systemd service unit is created. The template\ncan be found in the [Ansible role for Docker](https://github.com/dreknix/ansible-role-docker).\n\nThe Docker compose file can be provided via a Git repository of by a template.\nAll files that are not in the Git repository will be transferred via Ansible\ntemplates. The templates must be stored in a directory beneath the directory\n`templates`.\n\nIf the variable `docker_deploy_git_repo` is not set, a directory with the name\n`docker_deploy_name` will be created.\n\n``` yaml\n- name: Deploy Docker compose instance GitLab runner\n  hosts: docker_gitlab_runner\n  tasks:\n    - name: Include role 'dreknix.docker_deploy'\n      ansible.builtin.include_role:\n        name: dreknix.docker_deploy\n      vars:\n        docker_deploy_name: gitlab-runner\n        docker_deploy_template_dirs:\n          - \"{{ playbook_dir }}/templates/gitlab-runner\"\n```\n\nA more complex example:\n\n``` yaml\n---\n- name: Deploy Docker compose instances\n  hosts:\n    - docker_base\n  vars:\n    docker_compose_instances:\n      - name: resticer\n        state: absent\n      - name: base\n        git_repo: https://github.com/dreknix/docker-compose-base\n        template_dirs:\n          - \"{{ playbook_dir }}/templates/base/all\"\n          - \"{{ playbook_dir }}/templates/base/{{ inventory_hostname }}\"\n        touched_files:\n          - path: traefik-certs/acme.json\n            mode: u=rw,go=\n        delete_unmanaged_files: true\n        volumes:\n          - base_portainer_data\n        networks:\n          - frontend\n          - backend\n  tasks:\n    - name: Include role 'dreknix.docker_deploy'\n      ansible.builtin.include_role:\n        name: dreknix.docker_deploy\n      vars:\n        docker_deploy_name: \"{{ docker_compose_instance.name }}\"\n        docker_deploy_state: \"{{ docker_compose_instance.state | default('present') }}\"\n        docker_deploy_git_repo: \"{{ docker_compose_instance.git_repo }}\"\n        docker_deploy_directories: \"{{ docker_compose_instance.directories | default([]) }}\"\n        docker_deploy_file_dirs: \"{{ docker_compose_instance.file_dirs | default([]) }}\"\n        docker_deploy_template_dirs: \"{{ docker_compose_instance.template_dirs | default([]) }}\"\n        docker_deploy_touched_files: \"{{ docker_compose_instance.touched_files | default([]) }}\"\n        docker_deploy_delete_unmanaged_files: \"{{ docker_compose_instance.delete_unmanaged_files | default(false) }}\"\n        docker_deploy_volumes: \"{{ docker_compose_instance.volumes | default([]) }}\"\n        docker_deploy_networks: \"{{ docker_compose_instance.networks | default([]) }}\"\n      loop: \"{{ docker_compose_instances }}\"\n      loop_control:\n        loop_var: docker_compose_instance\n...\n```\n\n## Install role via `roles/requirements.yml`\n\n### Read-Only copy\n\nConfigure the role as read-only copy:\n\n```yml\n---\n# Docker/Docker-Compose\n- name: dreknix.docker_deploy\n  src: https://github.com/dreknix/ansible-role-docker-deploy.git\n  type: git\n  version: main\n...\n```\n\nInstall the role:\n\n```console\n$ ansible-galaxy role install --force -r roles/requirements.yml\n```\n\n### Working copy\n\nConfigure the role as a working copy:\n\n```yml\n---\n# Docker/Docker-Compose\n- name: dreknix.docker_deploy\n  src: git@github.com:dreknix/ansible-role-docker-deploy.git\n  type: git\n  version: main\n...\n```\n\nInstall the working copy:\n\n```console\n$ ansible-galaxy role install --force --keep-scm-meta -r roles/requirements.yml\n```\n\n## License\n\n[MIT](https://github.com/dreknix/ansible-role-docker-deploy/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdreknix%2Fansible-role-docker-deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdreknix%2Fansible-role-docker-deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdreknix%2Fansible-role-docker-deploy/lists"}