#jinja2:lstrip_blocks: True # {{ ansible_managed }} 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 not droneci_postgres_enabled %} - 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 %} {% if droneci_server_privileged %} privileged: true {% endif %} 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_postgres_enabled %} - DRONE_DATABASE_DRIVER=postgres - DRONE_DATABASE_DATASOURCE=postgres://{{ droneci_postgres_user.name }}:{{ droneci_postgres_user.password }}@{{ droneci_postgres_server }}/{{ droneci_postgres_db.name }}?sslmode={{ droneci_postgres_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 {% if droneci_agent_privileged %} privileged: true {% endif %} environment: - DRONE_RPC_SERVER=http://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 not droneci_postgres_enabled %} volumes: droneserver-data: {% endif %}