Uses php-fpm image and is served through a simple caddy server. Automatically deploys by default and can be automatically deployed with smtp e-mail sending and s3 primary object storage optionally if desired. Utilizes some necessary hackery for container ordering and startup so startup is relatively slow (takes around 2-5 minutes at least) but once running should be stable and uninterrupted. Implements health-checks for all involved containers. Switch apache for php-fpm image
39 lines
1 KiB
YAML
39 lines
1 KiB
YAML
---
|
|
## install container
|
|
- name: Check upstream status
|
|
community.docker.docker_container_exec:
|
|
container: "{{ caddy_container_id }}"
|
|
command: >
|
|
curl localhost:2019/id/{{ stack_name }}_upstream/
|
|
register: result
|
|
changed_when: (result.stdout | from_json) != (lookup('template', 'upstream.json.j2') | from_yaml)
|
|
become: yes
|
|
notify: "update nextcloud upstream"
|
|
|
|
- name: Ensure target directory exists
|
|
ansible.builtin.file:
|
|
path: "{{ nextcloud_upstream_file_dir }}"
|
|
state: directory
|
|
mode: '0755'
|
|
become: yes
|
|
notify: "update nextcloud upstream"
|
|
|
|
- name: Move webserver Caddyfile to target dir
|
|
ansible.builtin.copy:
|
|
src: "Caddyfile"
|
|
dest: "{{ nextcloud_upstream_file_dir }}/Caddyfile"
|
|
become: yes
|
|
notify: "update nextcloud upstream"
|
|
|
|
- name: Deploy to swarm
|
|
community.general.docker_stack:
|
|
name: "{{ stack_name }}"
|
|
state: present
|
|
prune: yes
|
|
compose:
|
|
- "{{ stack_compose }}"
|
|
become: yes
|
|
tags:
|
|
- docker-swarm
|
|
notify: "update nextcloud upstream"
|
|
|