https://github.com/levonet/ansible-docker-project-deploy
Ansible role that deploys some project to docker
https://github.com/levonet/ansible-docker-project-deploy
Last synced: 3 months ago
JSON representation
Ansible role that deploys some project to docker
- Host: GitHub
- URL: https://github.com/levonet/ansible-docker-project-deploy
- Owner: levonet
- License: mit
- Created: 2018-08-26T21:05:50.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2019-03-30T00:01:11.000Z (about 7 years ago)
- Last Synced: 2024-10-11T23:04:58.444Z (over 1 year ago)
- Homepage: https://galaxy.ansible.com/levonet/docker_project_deploy
- Size: 15.6 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CI: Deploy docker project Role
[](https://travis-ci.org/levonet/ansible-docker-project-deploy)
Deploy project in a docker container.
## Role Variables
- `project_tag` (default: latest): Tag name.
- `project_host` (default: 127.0.0.1): Host for binding app port on docker server.
- `project_port` (default: 8080): Binding app port on docker server. Ignored if used `project_port_pool`.
- `project_app_port` (default: 8080): Exposed port in docker container.
- `project_port_pool` (optional): Ports pool.
- `project_name` (required): This name used in name of home folder path, hostname and in name of container.
- `project_hostname` (default: "{{ project_tag }}.{{ project_name }}.localhost")
- `nginx_conf_prefix` (default: 50-): Prefix in name of nginx config.
- `nginx_include_root_location` (default: yes) Include root location section with proxy_pass on service.
- `nginx_include_ssl` (default: no): Include ssl configuration.
- `nginx_only_ssl` (default: no): Redirect to https from http.
- `nginx_logs` (default: yes): Switch on/off logging.
- `nginx_http_conf` (optional): Extra configuration for app nginx `http` section.
- `nginx_server_conf` (optional): Extra configuration for app nginx `server` section.
- `nginx_location_conf` (optional): Extra configuration for app nginx `location` section.
- `nginx_test_command` (default: nginx -t)
- `nginx_reload_command` (default: nginx -s reload)
- `registry_username` (optional): Docker registry username.
- `registry_password` (optional): Docker registry password.
- `registry_hostname` (default: localhost): Docker registry address.
- `registry_container` (required): Image name in registry.
- `docker_project_image` (default: "{{ registry_hostname }}/{{ registry_container }}:{{ project_tag }}")
- `docker_project_name` (default: "{{ project_name }}-{{ project_tag }}")
- `docker_project_home` (default: "/opt/{{ docker_project_name }}")
- `docker_project_command` (optional) Command to execute when the container starts.
- `docker_project_env` (optional)
- `docker_project_directory_mode` (default: 0755)
- `docker_project_directory_owner` (default: root)
- `docker_project_directory_group` (default: root)
- `docker_project_directory_volumes` (optional)
- `docker_project_file_volumes` (optional)
- `docker_project_ports` (optional): Additional applications ports.
- `docker_project_network_mode` (default: host): Connect the container to a network.
- `docker_project_networks` (optional): List of networks the container belongs to.
- `docker_project_log_driver` (default: json-file): Specify the logging driver.
- `docker_project_log_options` (optional): Dictionary of options specific to the chosen log_driver. See [Configure logging drivers](https://docs.docker.com/engine/admin/logging/overview/) for details.
- `docker_project_restart` (default: no): Restart container.
- `docker_project_remove_existing_container`: (default: yes): Remove existing container and artifacts.
## Dependencies
- `docker` or `docker-ce`
- `nginx`
## Example Playbook
```yaml
- hosts: all
become: yes
become_method: sudo
vars:
project_tag: PR-21
project_name: my_app
project_app_port: 5000
project_port_pool: 5800-5899
project_hostname: "{{ project_tag }}.{{ project_name }}.myhost.com"
docker_project_directory_owner: 1001
docker_project_directory_group: 1001
docker_project_directory_volumes:
- "{{ docker_project_home }}/conf:/app/config:ro"
- "{{ docker_project_home }}/storage:/app/storage"
project_configs:
- dest: "{{ docker_project_home }}/conf/app.ini"
content: |
[server]
root_url = {{ project_hostname }}
nginx_conf_prefix: 35-
registry_hostname: registry.myhost.com
registry_container: my_org/my_app
registry_username: ci-bot
registry_password: secret
roles:
- role: levonet.docker_project_deploy
```
## License
[MIT](https://opensource.org/licenses/MIT)
## Author Information
This role was created by [Pavlo Bashynskyi](https://github.com/levonet)