From 15aee979a070467c3d9d1a51a388b07a97c352ae Mon Sep 17 00:00:00 2001 From: David Beniamine <david.beniamine@tetras-libre.fr> Date: Fri, 18 Feb 2022 16:38:02 +0100 Subject: [PATCH] Auto empty cache upon FS change and stack restart --- config/config.yml | 1 - docker/Dockerfile | 8 +++++++- docker/entrypoint.sh | 22 ++++++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 docker/entrypoint.sh diff --git a/config/config.yml b/config/config.yml index 897e687..c972739 100644 --- a/config/config.yml +++ b/config/config.yml @@ -67,4 +67,3 @@ PicoZCache: dir: content/cache/html/ # Directory where cache should be saved time: 2592000 # Interval between caching (period from one to second cache) in seconds, here is 7 days = 60 * 60 * 24 * 30. xhtml_output: false # If true, XHTML Content-Type header will be sent when loading cache page - ignore_url_regex: "/blog/" diff --git a/docker/Dockerfile b/docker/Dockerfile index 1d2d0ba..4c67873 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -5,7 +5,7 @@ RUN composer create-project --no-interaction picocms/pico-composer pico FROM php:7.4-apache RUN apt-get update && \ - apt-get install -y libonig-dev libxml2-dev locales && \ + apt-get install -y inotify-tools libonig-dev libxml2-dev locales && \ docker-php-ext-install -j$(nproc) dom mbstring && \ docker-php-ext-enable dom mbstring @@ -19,3 +19,9 @@ COPY --from=builder /app/pico /var/www/html RUN a2enmod rewrite COPY pico.conf /etc/apache2/sites-enabled/000-default.conf + +COPY entrypoint.sh /entrypoint.sh + +RUN chmod +x /entrypoint.sh + +ENTRYPOINT /entrypoint.sh diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100644 index 0000000..518190d --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,22 @@ +#!/bin/bash +basedir=/var/www/html +cachedir=$basedir/content/cache +clear_cache() { + echo "Clearing HTML cache" + rm -rf $cachedir/html/* + echo "Clearing TWIG cache" + rm -rf $cachedir/twig/* +} +watcher() { + clear_cache + inotifywait -m -r -e modify -e move -e create -e delete \ + --exclude '\.*.sw?' \ + --exclude $cachedir \ + $basedir |\ + while read dir ev file; do + echo "File $ev detected" + clear_cache + done +} +watcher & +exec apache2ctl -DFOREGROUND -- GitLab