From 3ce606c80c661373d14d671f6768f6a4316c6ffc Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Thu, 3 Apr 2025 10:46:08 +0200 Subject: [PATCH 1/3] 4184: Added woodpecker setup for sub-sites --- .woodpecker/emnemodul_prod.yml | 40 +++++++++++++++++++++++++++++++ .woodpecker/loop_prod.yml | 40 +++++++++++++++++++++++++++++++ .woodpecker/risikataloop_prod.yml | 40 +++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+) create mode 100644 .woodpecker/emnemodul_prod.yml create mode 100644 .woodpecker/loop_prod.yml create mode 100644 .woodpecker/risikataloop_prod.yml diff --git a/.woodpecker/emnemodul_prod.yml b/.woodpecker/emnemodul_prod.yml new file mode 100644 index 000000000..ac4d19af6 --- /dev/null +++ b/.woodpecker/emnemodul_prod.yml @@ -0,0 +1,40 @@ +when: + - event: release + +skip_clone: true + +labels: + zone: DMZ + +steps: + - name: Ansible playbook + image: itkdev/ansible-plugin:1 + pull: true + settings: + id: + from_secret: id + secret: + from_secret: secret + host: + from_secret: prod_emnemodul_host + path: + from_secret: prod_emnemodul_path + user: + from_secret: user + playbook: 'release' + pre_up: + # Fixes issue with 'Drupal\mysql\Driver\Database\mysql\Connection' not found + - itkdev-docker-compose-server run --rm phpfpm composer2 dump-autoload + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes deploy + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:update + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild + cron: + cron: + minute: '47' + hour: '*' + day: '*' + month: '*' + weekday: '*' + job: 'itkdev-docker-compose-server exec phpfpm vendor/bin/drush core:cron' diff --git a/.woodpecker/loop_prod.yml b/.woodpecker/loop_prod.yml new file mode 100644 index 000000000..3f9674cd8 --- /dev/null +++ b/.woodpecker/loop_prod.yml @@ -0,0 +1,40 @@ +when: + - event: release + +skip_clone: true + +labels: + zone: DMZ + +steps: + - name: Ansible playbook + image: itkdev/ansible-plugin:1 + pull: true + settings: + id: + from_secret: id + secret: + from_secret: secret + host: + from_secret: prod_loop_host + path: + from_secret: prod_loop_path + user: + from_secret: user + playbook: 'release' + pre_up: + # Fixes issue with 'Drupal\mysql\Driver\Database\mysql\Connection' not found + - itkdev-docker-compose-server run --rm phpfpm composer2 dump-autoload + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes deploy + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:update + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild + cron: + cron: + minute: '47' + hour: '*' + day: '*' + month: '*' + weekday: '*' + job: 'itkdev-docker-compose-server exec phpfpm vendor/bin/drush core:cron' diff --git a/.woodpecker/risikataloop_prod.yml b/.woodpecker/risikataloop_prod.yml new file mode 100644 index 000000000..632c8eca0 --- /dev/null +++ b/.woodpecker/risikataloop_prod.yml @@ -0,0 +1,40 @@ +when: + - event: release + +skip_clone: true + +labels: + zone: DMZ + +steps: + - name: Ansible playbook + image: itkdev/ansible-plugin:1 + pull: true + settings: + id: + from_secret: id + secret: + from_secret: secret + host: + from_secret: prod_risikataloop_host + path: + from_secret: prod_risikataloop_path + user: + from_secret: user + playbook: 'release' + pre_up: + # Fixes issue with 'Drupal\mysql\Driver\Database\mysql\Connection' not found + - itkdev-docker-compose-server run --rm phpfpm composer2 dump-autoload + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes deploy + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:update + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild + cron: + cron: + minute: '23' + hour: '*' + day: '*' + month: '*' + weekday: '*' + job: 'itkdev-docker-compose-server exec phpfpm vendor/bin/drush core:cron' From 68a573fee7c66aca62447e41e18444f4d3b74fca Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Thu, 3 Apr 2025 12:39:12 +0200 Subject: [PATCH 2/3] 4184: Updated woodpecker configuration --- .woodpecker/emnemodul_prod.yml | 14 ++++++++------ .woodpecker/loop_prod.yml | 14 ++++++++------ .woodpecker/risikataloop_prod.yml | 12 +++++++----- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/.woodpecker/emnemodul_prod.yml b/.woodpecker/emnemodul_prod.yml index ac4d19af6..219b383cc 100644 --- a/.woodpecker/emnemodul_prod.yml +++ b/.woodpecker/emnemodul_prod.yml @@ -19,20 +19,22 @@ steps: from_secret: prod_emnemodul_host path: from_secret: prod_emnemodul_path + uri: + from_secret: prod_emnemodul_uri user: from_secret: user playbook: 'release' pre_up: # Fixes issue with 'Drupal\mysql\Driver\Database\mysql\Connection' not found - itkdev-docker-compose-server run --rm phpfpm composer2 dump-autoload - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes deploy - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:update - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes deploy + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes locale:update + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes cache:rebuild cron: cron: - minute: '47' + minute: '08' hour: '*' day: '*' month: '*' diff --git a/.woodpecker/loop_prod.yml b/.woodpecker/loop_prod.yml index 3f9674cd8..5fef14026 100644 --- a/.woodpecker/loop_prod.yml +++ b/.woodpecker/loop_prod.yml @@ -19,20 +19,22 @@ steps: from_secret: prod_loop_host path: from_secret: prod_loop_path + uri: + from_secret: prod_loop_uri user: from_secret: user playbook: 'release' pre_up: # Fixes issue with 'Drupal\mysql\Driver\Database\mysql\Connection' not found - itkdev-docker-compose-server run --rm phpfpm composer2 dump-autoload - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes deploy - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:update - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes deploy + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes locale:update + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes cache:rebuild cron: cron: - minute: '47' + minute: '14' hour: '*' day: '*' month: '*' diff --git a/.woodpecker/risikataloop_prod.yml b/.woodpecker/risikataloop_prod.yml index 632c8eca0..f79f1962c 100644 --- a/.woodpecker/risikataloop_prod.yml +++ b/.woodpecker/risikataloop_prod.yml @@ -19,17 +19,19 @@ steps: from_secret: prod_risikataloop_host path: from_secret: prod_risikataloop_path + uri: + from_secret: prod_risikataloop_uri user: from_secret: user playbook: 'release' pre_up: # Fixes issue with 'Drupal\mysql\Driver\Database\mysql\Connection' not found - itkdev-docker-compose-server run --rm phpfpm composer2 dump-autoload - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes deploy - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:update - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes deploy + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes locale:update + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes cache:rebuild cron: cron: minute: '23' From a1113666f1c20af278350b7bfbd1611dac1a09f0 Mon Sep 17 00:00:00 2001 From: turegjorup Date: Mon, 7 Apr 2025 15:10:30 +0200 Subject: [PATCH 3/3] Migrate to DRUSH_OPTIONS_URI --- .woodpecker/emnemodul_prod.yml | 12 +++++------- .woodpecker/loop_prod.yml | 12 +++++------- .woodpecker/risikataloop_prod.yml | 12 +++++------- CHANGELOG.md | 5 +++++ README.md | 11 ++++++----- docker-compose.server.yml | 5 +++-- docker-compose.yml | 32 ++++++++++++++++++++++--------- 7 files changed, 52 insertions(+), 37 deletions(-) diff --git a/.woodpecker/emnemodul_prod.yml b/.woodpecker/emnemodul_prod.yml index 219b383cc..d009ee1fe 100644 --- a/.woodpecker/emnemodul_prod.yml +++ b/.woodpecker/emnemodul_prod.yml @@ -19,19 +19,17 @@ steps: from_secret: prod_emnemodul_host path: from_secret: prod_emnemodul_path - uri: - from_secret: prod_emnemodul_uri user: from_secret: user playbook: 'release' pre_up: # Fixes issue with 'Drupal\mysql\Driver\Database\mysql\Connection' not found - itkdev-docker-compose-server run --rm phpfpm composer2 dump-autoload - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes cache:rebuild - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes deploy - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes locale:update - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes deploy + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:update + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild cron: cron: minute: '08' diff --git a/.woodpecker/loop_prod.yml b/.woodpecker/loop_prod.yml index 5fef14026..3ea63fae8 100644 --- a/.woodpecker/loop_prod.yml +++ b/.woodpecker/loop_prod.yml @@ -19,19 +19,17 @@ steps: from_secret: prod_loop_host path: from_secret: prod_loop_path - uri: - from_secret: prod_loop_uri user: from_secret: user playbook: 'release' pre_up: # Fixes issue with 'Drupal\mysql\Driver\Database\mysql\Connection' not found - itkdev-docker-compose-server run --rm phpfpm composer2 dump-autoload - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes cache:rebuild - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes deploy - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes locale:update - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes deploy + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:update + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild cron: cron: minute: '14' diff --git a/.woodpecker/risikataloop_prod.yml b/.woodpecker/risikataloop_prod.yml index f79f1962c..632c8eca0 100644 --- a/.woodpecker/risikataloop_prod.yml +++ b/.woodpecker/risikataloop_prod.yml @@ -19,19 +19,17 @@ steps: from_secret: prod_risikataloop_host path: from_secret: prod_risikataloop_path - uri: - from_secret: prod_risikataloop_uri user: from_secret: user playbook: 'release' pre_up: # Fixes issue with 'Drupal\mysql\Driver\Database\mysql\Connection' not found - itkdev-docker-compose-server run --rm phpfpm composer2 dump-autoload - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes cache:rebuild - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes deploy - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes locale:update - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po - - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --uri=$${PLUGIN_URI} --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes deploy + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:update + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes locale:import --type=customized --override=none da /app/web/profiles/custom/os2loop/translations/translations.da.po + - itkdev-docker-compose-server run --rm phpfpm vendor/bin/drush --yes cache:rebuild cron: cron: minute: '23' diff --git a/CHANGELOG.md b/CHANGELOG.md index ddd3b235b..54066bdd4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [1.2.3] + +- [PR-372](https://github.com/itk-dev/os2loop/pull/372) + Migrate to DRUSH_OPTIONS_URI + ## [1.2.2] - [PR-371](https://github.com/itk-dev/os2loop/pull/371) diff --git a/README.md b/README.md index 30239be90..0f09a434c 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,12 @@ # OS2loop +[![Woodpecker](https://img.shields.io/badge/woodpecker-prod|stg-blue.svg?style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTEuMjYzIDIuNzQ0QzIuNDEgMy44MzIgMi44NDUgNC45MzIgNC4xMTggNS4wOGwuMDM2LjAwN2MtLjU4OC42MDYtMS4wOSAxLjQwMi0xLjQ0MyAyLjQyMy0uMzggMS4wOTYtLjQ4OCAyLjI4NS0uNjE0IDMuNjU5LS4xOSAyLjA0Ni0uNDAxIDQuMzY0LTEuNTU2IDcuMjY5LTIuNDg2IDYuMjU4LTEuMTIgMTEuNjMuMzMyIDE3LjMxNy42NjQgMi42MDQgMS4zNDggNS4yOTcgMS42NDIgOC4xMDdhLjg1Ny44NTcgMCAwMC42MzMuNzQ0Ljg2Ljg2IDAgMDAuOTIyLS4zMjNjLjIyNy0uMzEzLjUyNC0uNzk3Ljg2LTEuNDI0Ljg0IDMuMzIzIDEuMzU1IDYuMTMgMS43ODMgOC42OTdhLjg2Ni44NjYgMCAwMDEuNTE3LjQxYzIuODgtMy40NjMgMy43NjMtOC42MzYgMi4xODQtMTIuNjc0LjQ1OS0yLjQzMyAxLjQwMi00LjQ1IDIuMzk4LTYuNTgzLjUzNi0xLjE1IDEuMDgtMi4zMTggMS41NS0zLjU2Ni4yMjgtLjA4NC41NjktLjMxNC43OS0uNDQxbDEuNzA3LS45ODEtLjI1NiAxLjA1MmEuODY0Ljg2NCAwIDAwMS42NzguNDA4bC42OC0yLjg1OCAxLjI4NS0yLjk1YS44NjMuODYzIDAgMTAtMS41ODEtLjY4N2wtMS4xNTIgMi42NjktMi4zODMgMS4zNzJhMTguOTcgMTguOTcgMCAwMC41MDgtMi45ODFjLjQzMi00Ljg2LS43MTgtOS4wNzQtMy4wNjYtMTEuMjY2LS4xNjMtLjE1Ny0uMjA4LS4yODEtLjI0Ny0uMjYuMDk1LS4xMi4yNDktLjI2LjM1OC0uMzc0IDIuMjgzLTEuNjkzIDYuMDQ3LS4xNDcgOC4zMTkuNzUuNTg5LjIzMi44NzYtLjMzNy4zMTYtLjY3LTEuOTUtMS4xNTMtNS45NDgtNC4xOTYtOC4xODgtNi4xOTMtLjMxMy0uMjc1LS41MjctLjYwNy0uODktLjkxM0M5LjgyNS41NTUgNC4wNzIgMy4wNTcgMS4zNTUgMi41NjljLS4xMDItLjAxOC0uMTY2LjEwMy0uMDkyLjE3NW0xMC45OCA1Ljg5OWMtLjA2IDEuMjQyLS42MDMgMS44LTEgMi4yMDgtLjIxNy4yMjQtLjQyNi40MzYtLjUyNC43MzgtLjIzNi43MTQuMDA4IDEuNTEuNjYgMi4xNDMgMS45NzQgMS44NCAyLjkyNSA1LjUyNyAyLjUzOCA5Ljg2LS4yOTEgMy4yODgtMS40NDggNS43NjMtMi42NzEgOC4zODUtMS4wMzEgMi4yMDctMi4wOTYgNC40ODktMi41NzcgNy4yNTlhLjg1My44NTMgMCAwMC4wNTYuNDhjMS4wMiAyLjQzNCAxLjEzNSA2LjE5Ny0uNjcyIDkuNDZhOTYuNTg2IDk2LjU4NiAwIDAwLTEuOTctOC43MTFjMS45NjQtNC40ODggNC4yMDMtMTEuNzUgMi45MTktMTcuNjY4LS4zMjUtMS40OTctMS4zMDQtMy4yNzYtMi4zODctNC4yMDctLjIwOC0uMTgtLjQwMi0uMjM3LS40OTUtLjE2Ny0uMDg0LjA2LS4xNTEuMjM4LS4wNjIuNDQ0LjU1IDEuMjY2Ljg3OSAyLjU5OSAxLjIyNiA0LjI3NiAxLjEyNSA1LjQ0My0uOTU2IDEyLjQ5LTIuODM1IDE2Ljc4MmwtLjExNi4yNTktLjQ1Ny45ODJjLS4zNTYtMi4wMTQtLjg1LTMuOTUtMS4zMy01Ljg0LTEuMzgtNS40MDYtMi42OC0xMC41MTUtLjQwMS0xNi4yNTQgMS4yNDctMy4xMzcgMS40ODMtNS42OTIgMS42NzItNy43NDYuMTE2LTEuMjYzLjIxNi0yLjM1NS41MjYtMy4yNTIuOTA1LTIuNjA1IDMuMDYyLTMuMTc4IDQuNzQ0LTIuODUyIDEuNjMyLjMxNiAzLjI0IDEuNTkzIDMuMTU2IDMuNDJ6bS0yLjg2OC42MmExLjE3NyAxLjE3NyAwIDEwLjczNi0yLjIzNiAxLjE3OCAxLjE3OCAwIDEwLS43MzYgMi4yMzd6Ii8+PC9zdmc+Cg==)](https://woodpecker.itkdev.dk/repos/10) [![Github](https://img.shields.io/badge/source-os2loop/os2loop-blue?style=flat-square)](https://github.com/os2loop/os2loop) -[![Release](https://img.shields.io/github/v/release/os2loop/os2loop?sort=semver&style=flat-square)](https://github.com/os2loop/os2loop/releases) -[![PHP Version](https://img.shields.io/badge/PHP-%5E8.1-9cf)](https://www.php.net/downloads) -[![Build Status](https://img.shields.io/github/workflow/status/itk-dev/os2loop/PR%20Review?&logo=github&style=flat-square)](https://github.com/os2loop/os2loop/actions?query=workflow%3A%22Test+%26+Code+Style+Review%22) -[![Read License](https://img.shields.io/github/license/os2loop/os2loop)](https://github.com/os2loop/os2loop/blob/master/LICENSE.txt) -[![Github downloads](https://img.shields.io/github/downloads/os2loop/os2loop/total?style=flat-square&colorB=darkmagenta)](https://packagist.org/packages/os2loop/os2loop/stats) +[![GitHub Release](https://img.shields.io/github/v/release/itk-dev/os2loop?style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgODBMMCAyMjkuNWMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2wxNzYgMTc2YzI1IDI1IDY1LjUgMjUgOTAuNSAwTDQxOC43IDMxNy4zYzI1LTI1IDI1LTY1LjUgMC05MC41bC0xNzYtMTc2Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODB6bTExMiAzMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Ii8+PC9zdmc+)](https://github.com/itk-dev/os2loop/releases) +[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/itk-dev/os2loop/pr.yaml?style=flat-square&logo=github)](https://github.com/itk-dev/os2loop/actions/workflows/pr.yaml) +[![Codecov](https://img.shields.io/codecov/c/github/itk-dev/os2loop?style=flat-square&logo=codecov)](https://codecov.io/gh/itk-dev/os2loop) +[![GitHub last commit](https://img.shields.io/github/last-commit/itk-dev/os2loop?style=flat-square)](https://github.com/itk-dev/os2loop/commits/develop/) +[![GitHub License](https://img.shields.io/github/license/itk-dev/os2loop?style=flat-square)](https://github.com/itk-dev/os2loop/blob/develop/LICENSE) OS2loop is a question-answering system built on Drupal 9. See [os2.eu/produkt/os2loop](https://os2.eu/produkt/os2loop) (in Danish) for more information. diff --git a/docker-compose.server.yml b/docker-compose.server.yml index 91bd25621..6f984b5a5 100644 --- a/docker-compose.server.yml +++ b/docker-compose.server.yml @@ -1,4 +1,4 @@ -# itk-version: 3.2.1 +# itk-version: 3.2.3 networks: frontend: external: true @@ -17,7 +17,8 @@ services: environment: - PHP_MAX_EXECUTION_TIME=30 - PHP_MEMORY_LIMIT=128M - - COMPOSER_VERSION=2 + # Let drush know the site uri (makes using --uri redundant) + - DRUSH_OPTIONS_URI=https://${COMPOSE_SERVER_DOMAIN} depends_on: - memcached volumes: diff --git a/docker-compose.yml b/docker-compose.yml index 75f9c431f..1415afdbd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -# itk-version: 3.2.1 +# itk-version: 3.2.3 networks: frontend: external: true @@ -13,6 +13,12 @@ services: - app ports: - '3306' + healthcheck: + test: [ "CMD", "healthcheck.sh", "--connect", "--innodb_initialized" ] + start_period: 10s + interval: 10s + timeout: 5s + retries: 3 environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_USER=db @@ -25,6 +31,7 @@ services: phpfpm: image: itkdev/php8.3-fpm:latest + user: ${COMPOSE_USER:-deploy} networks: - app extra_hosts: @@ -34,13 +41,16 @@ services: - PHP_MAX_EXECUTION_TIME=30 - PHP_MEMORY_LIMIT=256M # Depending on the setup, you may have to remove --read-envelope-from from msmtp (cf. https://marlam.de/msmtp/msmtp.html) or use SMTP to send mail - - PHP_SENDMAIL_PATH=/usr/bin/msmtp --host=mail --port=1025 --read-recipients + - PHP_SENDMAIL_PATH=/usr/bin/msmtp --host=mail --port=1025 --read-recipients --read-envelope-from - DOCKER_HOST_DOMAIN=${COMPOSE_DOMAIN} - - COMPOSER_VERSION=2 - PHP_IDE_CONFIG=serverName=localhost + # Let drush know the site uri (makes using --uri redundant) + - DRUSH_OPTIONS_URI=http://${COMPOSE_DOMAIN} depends_on: - - mariadb - - memcached + mariadb: + condition: service_healthy + memcached: + condition: service_healthy volumes: - .:/app @@ -65,16 +75,20 @@ services: - "traefik.enable=true" - "traefik.docker.network=frontend" - "traefik.http.routers.${COMPOSE_PROJECT_NAME}.rule=Host(`${COMPOSE_DOMAIN}`)" -# HTTPS config - uncomment to enable redirect from :80 to :443 -# - "traefik.http.routers.${COMPOSE_PROJECT_NAME}.middlewares=redirect-to-https" -# - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" + # HTTPS config - uncomment to enable redirect from :80 to :443 + # - "traefik.http.routers.${COMPOSE_PROJECT_NAME}.middlewares=redirect-to-https" + # - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" memcached: - image: 'memcached:latest' + image: memcached:alpine networks: - app ports: - '11211' + healthcheck: + test: echo "version" | nc -vn -w 1 127.0.0.1 11211 + interval: 10s + retries: 60 environment: - MEMCACHED_CACHE_SIZE=64