From 847ae38932485632de45e359daa0d7a7b19e6385 Mon Sep 17 00:00:00 2001 From: Andy Postnikov Date: Wed, 12 Mar 2025 19:17:45 +0100 Subject: [PATCH 1/2] remove 82-moodle as Unit version is used --- php82-moodle/Dockerfile | 94 -------------------------------------- php82-moodle/php-fpm.conf | 20 -------- php82-moodle/xx-moodle.ini | 7 --- 3 files changed, 121 deletions(-) delete mode 100644 php82-moodle/Dockerfile delete mode 100644 php82-moodle/php-fpm.conf delete mode 100644 php82-moodle/xx-moodle.ini diff --git a/php82-moodle/Dockerfile b/php82-moodle/Dockerfile deleted file mode 100644 index eb125b7..0000000 --- a/php82-moodle/Dockerfile +++ /dev/null @@ -1,94 +0,0 @@ -FROM alpine:edge - -ARG MOOSH=https://github.com/tmuras/moosh/archive/refs/tags/1.19.tar.gz -ARG COMPOSER_HASH=dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6 - -ENV PHPRUN_DEPS \ - curl \ - git \ - libxml2-utils \ - libxslt \ - make \ - mariadb-client \ - openssh-client \ - patch \ - postgresql-client \ - rsync \ - sqlite \ - wget - -RUN set -eux \ - && echo 'https://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories \ - && apk --update upgrade -a \ - && mkdir -p /var/www \ - && addgroup -g 1000 -S web-group \ - && adduser -u 1000 -D -S -G web-group web-user \ - && mkdir -p /var/log/php82 && chown 1000:1000 /var/log/php82 \ - && apk add \ - php82 \ - php82-brotli \ - php82-pecl-apcu \ - php82-pecl-igbinary \ - php82-pecl-uploadprogress \ - php82-pecl-xdebug \ - php82-bcmath \ - php82-ctype \ - php82-curl \ - php82-dom \ - php82-exif \ - php82-fileinfo \ - php82-fpm \ - php82-gd \ - php82-gmp \ - php82-iconv \ - php82-intl \ - php82-mbstring \ - php82-opcache \ - php82-openssl \ - php82-pcntl \ - php82-pdo_mysql \ - php82-pdo_pgsql \ - php82-pdo_sqlite \ - php82-pgsql \ - php82-phar \ - php82-posix \ - php82-session \ - php82-simplexml \ - php82-soap \ - php82-sodium \ - php82-sqlite3 \ - php82-tokenizer \ - php82-xml \ - php82-xmlreader \ - php82-xmlwriter \ - php82-zip \ - $PHPRUN_DEPS \ - && ln -fs php82 /usr/bin/php \ -\ - && php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ - && php -r "if (hash_file('SHA384', 'composer-setup.php') === getenv('COMPOSER_HASH')) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \ - && php composer-setup.php \ - --install-dir=/usr/bin \ - --filename=composer2 \ - --2 \ - && ln -s composer2 /usr/bin/composer \ - && php -r "unlink('composer-setup.php');" \ -\ - && wget $MOOSH -O /tmp/moosh.tgz \ - && mkdir /opt/moosh \ - && tar zxf /tmp/moosh.tgz -C /opt/moosh --strip-components 1 \ - && rm /tmp/moosh.tgz \ - && cd /opt/moosh \ - && composer install -o --prefer-dist --no-dev \ - && ln -s /opt/moosh/moosh.php /usr/bin/moosh \ - && rm -fr /var/cache/apk/* /root/.composer/cache/* - -COPY php-fpm.conf /etc/php82/ -COPY xx-moodle.ini /etc/php82/conf.d/xx-moodle.ini - -#USER web-user -WORKDIR /var/www/html - -EXPOSE 9000 - -CMD ["php-fpm82", "-F"] diff --git a/php82-moodle/php-fpm.conf b/php82-moodle/php-fpm.conf deleted file mode 100644 index 15c0e8d..0000000 --- a/php82-moodle/php-fpm.conf +++ /dev/null @@ -1,20 +0,0 @@ -[global] -error_log = /proc/self/fd/2 -log_level = notice -daemonize = no - -[app] -user = web-user -group = web-group -listen = [::]:9000 -access.log = /proc/self/fd/2 -catch_workers_output = yes -clear_env = no -security.limit_extensions = .php - -pm = ondemand -pm.max_children = 4 -pm.max_requests = 100 -pm.process_idle_timeout = 30 - -php_value[memory_limit] = 512M diff --git a/php82-moodle/xx-moodle.ini b/php82-moodle/xx-moodle.ini deleted file mode 100644 index 9459f3a..0000000 --- a/php82-moodle/xx-moodle.ini +++ /dev/null @@ -1,7 +0,0 @@ -; PHP limits -memory_limit = 512M -max_input_time = 240 -max_input_vars = 10000 -max_execution_time = 240 -upload_max_filesize = 200M -post_max_size = 200M From b71046fad7f8a06f67e376657c40ee1e88f76677 Mon Sep 17 00:00:00 2001 From: Andy Postnikov Date: Wed, 12 Mar 2025 19:23:14 +0100 Subject: [PATCH 2/2] backport s6 to 83-moodle-unit #101 --- php83-moodle-unit/Dockerfile | 15 ++++++++++----- php83-moodle-unit/cron.sh | 22 ++++++++++++++++++++++ php83-moodle-unit/crontab | 1 + php83-moodle-unit/services/cron/run | 3 +++ php83-moodle-unit/services/unit/run | 3 +++ 5 files changed, 39 insertions(+), 5 deletions(-) create mode 100755 php83-moodle-unit/cron.sh create mode 100644 php83-moodle-unit/crontab create mode 100755 php83-moodle-unit/services/cron/run create mode 100755 php83-moodle-unit/services/unit/run diff --git a/php83-moodle-unit/Dockerfile b/php83-moodle-unit/Dockerfile index 1c7e298..de8623b 100644 --- a/php83-moodle-unit/Dockerfile +++ b/php83-moodle-unit/Dockerfile @@ -1,9 +1,8 @@ FROM alpine:edge -ENV COMPOSER_HASH dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6 +ENV COMPOSER_HASH=dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6 -ENV PHPRUN_DEPS \ - curl \ +ENV PHPRUN_DEPS="curl \ git \ libxml2-utils \ libxslt \ @@ -13,8 +12,9 @@ ENV PHPRUN_DEPS \ openssh-client \ patch \ rsync \ + s6-overlay \ sqlite \ - wget + wget" RUN set -e \ && apk --update upgrade \ @@ -81,8 +81,13 @@ COPY conf.json /var/lib/unit/ COPY xx-moodle.ini /etc/php83/conf.d/xx-moodle.ini +COPY cron.sh /usr/local/bin/cron.sh +COPY crontab /etc/crontabs/root + +COPY services /etc/services.d/ + WORKDIR /var/www/html EXPOSE 80 -CMD ["unitd", "--no-daemon", "--user", "web-user", "--group", "web-group", "--log", "/dev/stdout"] +ENTRYPOINT ["/init"] diff --git a/php83-moodle-unit/cron.sh b/php83-moodle-unit/cron.sh new file mode 100755 index 0000000..75be06b --- /dev/null +++ b/php83-moodle-unit/cron.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +reduce_cron_verbosity() { + while IFS= read -r line; do + case "$line" in + *"Continuing to check for tasks for"*) ;; + "Ran 0 adhoc tasks found"*) ;; + "Cron run completed correctly"*) ;; + "..."*) ;; + "") ;; + *) echo "$(date +"%Y/%m/%d %H:%M:%S") [cron] $line" ;; + esac + done +} + +if [ -f /var/www/html/web/admin/cli/cron.php ]; then + echo "$(date +"%Y/%m/%d %H:%M:%S") [cron] Cron execution started" 1>&2 + php /var/www/html/web/admin/cli/cron.php | reduce_cron_verbosity 1>&2 + echo "$(date +"%Y/%m/%d %H:%M:%S") [cron] Cron execution finished" 1>&2 +else + echo "$(date +"%Y/%m/%d %H:%M:%S") [cron] Moodle cron script not found" 1>&2 +fi diff --git a/php83-moodle-unit/crontab b/php83-moodle-unit/crontab new file mode 100644 index 0000000..5109dfa --- /dev/null +++ b/php83-moodle-unit/crontab @@ -0,0 +1 @@ +* * * * * /usr/local/bin/cron.sh >> /dev/stdout 2>&1 diff --git a/php83-moodle-unit/services/cron/run b/php83-moodle-unit/services/cron/run new file mode 100755 index 0000000..34ff0ff --- /dev/null +++ b/php83-moodle-unit/services/cron/run @@ -0,0 +1,3 @@ +#!/bin/sh + +exec crond -f 2>&1 diff --git a/php83-moodle-unit/services/unit/run b/php83-moodle-unit/services/unit/run new file mode 100755 index 0000000..3675e11 --- /dev/null +++ b/php83-moodle-unit/services/unit/run @@ -0,0 +1,3 @@ +#!/bin/sh + +exec unitd --no-daemon --user web-user --group web-group --log /dev/stdout