Skip to content

Commit

Permalink
feat: added healthcheck to outline
Browse files Browse the repository at this point in the history
  • Loading branch information
SilasPeters committed Aug 28, 2024
1 parent 938228f commit c971269
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 5 deletions.
11 changes: 9 additions & 2 deletions ansible/roles/docker/tasks/compose-up.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
---
# Possible variables which can be set to change the behaviour of these tasks:
# - project_source (required): the path to the directory the compose file is in
# - remove_images: whether to remove and rebuild all used images while composing up.
# Leave unset to keep the images, otherwise use "local" or "all"

- name: "Check if 'project_source' is defined"
ansible.builtin.fail:
Expand All @@ -21,6 +25,7 @@
community.docker.docker_compose_v2:
project_src: "{{ project_source }}"
state: "absent"
remove_images: "{{ remove_images | default(omit) }}"

- name: "Create and start services"
community.docker.docker_compose_v2:
Expand All @@ -36,7 +41,7 @@
project_src: "{{ project_source }}"
register: "output"

- name: "Assert that all services properly started"
- name: "Assert that all services properly started, and that the docker compose file is idempotent"
ansible.builtin.assert:
that: "not output.changed"

Expand Down Expand Up @@ -69,10 +74,12 @@
- "output.containers | selectattr('Name', 'equalto', item) | map(attribute='State') | list | first == 'exited'"
loop: "{{ docker_compose_service_names }}"

- name: "Restart services"
- name: "Restart services and ensure they are healhty"
community.docker.docker_compose_v2:
project_src: "{{ project_source }}"
state: "restarted"
wait: true
wait_timeout: 300
register: "output"

# - name: Show results
Expand Down
15 changes: 15 additions & 0 deletions ansible/roles/outline/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,16 @@
mode: "0600"
notify: "trigger outline migration"

- name: "Create outline 'Dockerfile'"
ansible.builtin.template:
src: "Dockerfile.j2"
dest: "{{ outline_config.project_source }}/Dockerfile"
owner: "outline"
group: "outline"
mode: "0600"
notify: "trigger outline migration"
register: "dockerfile"

- name: "Create outline 'docker.env' file"
ansible.builtin.template:
src: "docker.env.j2"
Expand Down Expand Up @@ -76,11 +86,16 @@
path: "{{ outline_config.project_source }}/.MIGRATION_PENDING"
state: "absent"

- name: "Install required packages"
ansible.builtin.apt:
name: "wget"
state: "present"

- name: "Docker compose"
ansible.builtin.include_tasks: "../docker/tasks/compose-up.yml"
vars:
project_source: "{{ outline_config.project_source }}"
remove_images: "{{ 'local' if dockerfile.changed else omit }}" # Rebuild the image if file changed

- name: "Install nginx config"
ansible.builtin.template:
Expand Down
17 changes: 17 additions & 0 deletions ansible/roles/outline/templates/Dockerfile.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM outlinewiki/outline:{{ outline_config.version }}

# Become root to install package
USER root

RUN apt-get update \
&& apt-get install -y wget \
&& rm -rf /var/lib/apt/lists/*

# Return to defaut user for security reasons
USER nodejs

HEALTHCHECK --interval=5m --start-period=30s --start-interval=10s \
CMD wget -qO- http://localhost:${PORT}/_health | grep -q 'OK' \
&& wget -qO- https://hc-ping.com/{{ secret_healthchecks_io.ping_key }}/outline \
|| exit 1

5 changes: 3 additions & 2 deletions ansible/roles/outline/templates/docker-compose.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
services:

outline:
image: outlinewiki/outline:{{ outline_config.version }}
restart: unless-stopped
build:
dockerfile: Dockerfile
env_file: ./docker.env
restart: on-failure:3
# ports:
# - "4568:3000"
network_mode: host # TODO replace this
Expand Down
2 changes: 1 addition & 1 deletion ansible/roles/outline/vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

outline_config:
project_source: "/var/www/outline/outline"
version: "0.78.0"
version: "0.78.0" # Git tag

0 comments on commit c971269

Please sign in to comment.