summaryrefslogtreecommitdiff
path: root/playbooks/roles/bin
diff options
context:
space:
mode:
Diffstat (limited to 'playbooks/roles/bin')
-rw-r--r--playbooks/roles/bin/tasks/main.yml22
-rw-r--r--playbooks/roles/bin/templates/stacks/docker-compose.yml13
2 files changed, 19 insertions, 16 deletions
diff --git a/playbooks/roles/bin/tasks/main.yml b/playbooks/roles/bin/tasks/main.yml
index 5254826..568703a 100644
--- a/playbooks/roles/bin/tasks/main.yml
+++ b/playbooks/roles/bin/tasks/main.yml
@@ -1,19 +1,9 @@
---
-- name: Build bin compose dirs
- ansible.builtin.file:
- state: directory
- dest: '{{ bin_base }}/{{ item.path }}'
- with_filetree: '../templates'
- when: item.state == 'directory'
+- name: Deploy Bin
+ ansible.builtin.import_tasks: manage-docker-swarm-service.yml
+ vars:
+ service_name: bin
+ template_render_dir: "../templates"
+ service_destination_dir: "{{ bin_base }}"
-- name: Build bin compose files
- ansible.builtin.template:
- src: '{{ item.src }}'
- dest: '{{ bin_base }}/{{ item.path }}'
- with_filetree: '../templates'
- when: item.state == 'file'
-
-- name: Deploy bin stack
- ansible.builtin.command:
- cmd: 'docker stack deploy -c {{ bin_base }}/stacks/docker-compose.yml bin'
diff --git a/playbooks/roles/bin/templates/stacks/docker-compose.yml b/playbooks/roles/bin/templates/stacks/docker-compose.yml
index 75f48f4..f218b74 100644
--- a/playbooks/roles/bin/templates/stacks/docker-compose.yml
+++ b/playbooks/roles/bin/templates/stacks/docker-compose.yml
@@ -5,15 +5,28 @@ services:
- {{ bin_base }}/volumes/data:/data
environment:
- TZ={{ timezone }}
+ - DEPLOYMENT_TIME={{ now() }}
- TRUST_PROXY=true
- API_URL=https://{{ bin_domain }}
- DATA_DIRECTORY=/data
- DATABASE_URL=file:/data/pingvin-share.db?connection_limit=1
+ healthcheck:
+ test: ["CMD", "curl", "--fail", "http://localhost:3000/api/configs"]
+ timeout: 3s
+ interval: 1m
+ retries: 2
+ start_timeout: 10s
networks:
- proxy
deploy:
mode: replicated
replicas: 1
+ update_config:
+ parallelism: 1
+ failure_action: rollback
+ order: start-first
+ delay: 10s
+ monitor: 10s
labels:
- traefik.enable=true
- traefik.swarm.network=proxy