xoxys.droneci/templates/services/droneci-compose.yml.j2

89 lines
3.4 KiB
Django/Jinja
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#jinja2:lstrip_blocks: True
{{ ansible_managed | comment }}
version: '2'
services:
droneserver:
container_name: {{ droneci_server_container_name }}
image: {{ droneci_server_image }}
ports:
- {{ droneci_server_exposed_ip + ':' if droneci_server_exposed_ip is defined else '' }}{{ droneci_server_exposed_port }}:80
volumes:
{% if droneci_db_type == "sqlite" %}
- droneserver-data:/var/lib/drone/
{% endif %}
{% if droneci_license_key is defined %}
- {{ droneci_license_key }}:/etc/drone.key
{% endif %}
{% if droneci_server_extra_hosts | default([]) %}
extra_hosts:
{% for host in droneci_server_extra_hosts %}
- {{ '"' + host + '"' }}
{% endfor %}
{% endif %}
privileged: true
environment:
- DRONE_SERVER_HOST={{ droneci_host | urlsplit('hostname') }}
- DRONE_SERVER_PROTO={{ droneci_host | urlsplit('scheme') }}
- DRONE_AGENTS_ENABLED=true
- DRONE_RPC_SECRET={{ droneci_secret }}
- DRONE_USER_CREATE=username:{{ droneci_admin }},admin:true
- DRONE_LOGS_COLOR=true
- DRONE_LOGS_PRETTY=true
- DRONE_TLS_AUTOCERT=false
{% if droneci_db_type == "pgsql" %}
- DRONE_DATABASE_DRIVER=postgres
- DRONE_DATABASE_DATASOURCE=postgres://{{ droneci_db_user }}:{{ droneci_db_password }}@{{ droneci_db_server }}/{{ droneci_db_name }}?sslmode={{ droneci_db_ssl_mode }}
{% endif %}
{% if droneci_gitea_enabled %}
- DRONE_GITEA_SERVER={{ droneci_gitea_server }}
- DRONE_GITEA_SKIP_VERIFY={{ droneci_gitea_skip_verify | lower }}
{% if droneci_gitea_oauth_client_id is defined and droneci_gitea_oauth_client_secret is defined %}
- DRONE_GITEA_CLIENT_ID={{ droneci_gitea_oauth_client_id }}
- DRONE_GITEA_CLIENT_SECRET={{ droneci_gitea_oauth_client_secret }}
{% endif %}
{% endif %}
{% if droneci_http_proxy is defined %}
- HTTP_PROXY={{ droneci_http_proxy | join(',') }}
- http_proxy={{ droneci_http_proxy | join(',') }}
{% endif %}
{% if droneci_https_proxy is defined %}
- HTTPS_PROXY={{ droneci_https_proxy | join(',') }}
- https_proxy={{ droneci_https_proxy | join(',') }}
{% endif %}
- NO_PROXY={{ droneci_no_proxy | join(',') }}
- no_proxy={{ droneci_no_proxy | join(',') }}
{% if droneci_server_memory_limit is defined %}
mem_limit: {{ droneci_server_memory_limit }}
{% endif %}
{% if droneci_server_memory_reservation is defined %}
mem_reservation: {{ droneci_server_memory_reservation }}
{% endif %}
droneagent:
container_name: {{ droneci_agent_container_name }}
image: {{ droneci_agent_image }}
depends_on:
- droneserver
volumes:
- {{ droneci_docker_socket_path }}:/var/run/docker.sock
privileged: true
environment:
- DRONE_RPC_PROTO=http
- DRONE_RPC_HOST=droneserver
- DRONE_RPC_SECRET={{ droneci_secret }}
- DRONE_RUNNER_CAPACITY={{ droneci_agent_capacity }}
# TODO: temp static value, needs to be replaced by a custom fact
- DOCKER_API_VERSION=1.26
{% if droneci_agent_memory_limit is defined %}
mem_limit: {{ droneci_agent_memory_limit }}
{% endif %}
{% if droneci_agent_memory_reservation is defined %}
mem_reservation: {{ droneci_agent_memory_reservation }}
{% endif %}
{% if droneci_db_type == "sqlite" %}
volumes:
droneserver-data:
{% endif %}