From 8bd46c9dad1093bacfee919bdff28e46bd21692a Mon Sep 17 00:00:00 2001 From: Silas <69711739+SilasPeters@users.noreply.github.com> Date: Tue, 27 Aug 2024 00:52:17 +0200 Subject: [PATCH] feat: added healthcheck to outline --- ansible/roles/outline/tasks/main.yml | 13 +++++++++++++ ansible/roles/outline/templates/Dockerfile.j2 | 15 +++++++++++++++ .../roles/outline/templates/docker-compose.yml.j2 | 5 +++-- ansible/roles/outline/vars/main.yml | 2 +- 4 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 ansible/roles/outline/templates/Dockerfile.j2 diff --git a/ansible/roles/outline/tasks/main.yml b/ansible/roles/outline/tasks/main.yml index 0a041b1d..97f27f9e 100644 --- a/ansible/roles/outline/tasks/main.yml +++ b/ansible/roles/outline/tasks/main.yml @@ -45,6 +45,15 @@ 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" + - name: "Create outline 'docker.env' file" ansible.builtin.template: src: "docker.env.j2" @@ -76,6 +85,10 @@ 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" diff --git a/ansible/roles/outline/templates/Dockerfile.j2 b/ansible/roles/outline/templates/Dockerfile.j2 new file mode 100644 index 00000000..bfcf530a --- /dev/null +++ b/ansible/roles/outline/templates/Dockerfile.j2 @@ -0,0 +1,15 @@ +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/* + +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 + +# Return to defaut user for security reasons +USER nodejs diff --git a/ansible/roles/outline/templates/docker-compose.yml.j2 b/ansible/roles/outline/templates/docker-compose.yml.j2 index 89fb45ed..4022404c 100644 --- a/ansible/roles/outline/templates/docker-compose.yml.j2 +++ b/ansible/roles/outline/templates/docker-compose.yml.j2 @@ -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 diff --git a/ansible/roles/outline/vars/main.yml b/ansible/roles/outline/vars/main.yml index d210b456..d1998ea6 100644 --- a/ansible/roles/outline/vars/main.yml +++ b/ansible/roles/outline/vars/main.yml @@ -2,4 +2,4 @@ outline_config: project_source: "/var/www/outline/outline" - version: "0.78.0" + version: "0.78.0" # Git tag