From 0fef52be0a4adbfe3a7b092f355dd78d0f4855d6 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 10 Apr 2023 22:29:36 +0300 Subject: get version from CI variables, rebase to php 8.1 & alpine 3.16 --- .docker/app/Dockerfile | 33 ++++++++++++++++++++++----------- .docker/app/startup.sh | 16 ++++++++-------- classes/config.php | 13 +++++++++++-- 3 files changed, 41 insertions(+), 21 deletions(-) diff --git a/.docker/app/Dockerfile b/.docker/app/Dockerfile index ee78428..36eabad 100644 --- a/.docker/app/Dockerfile +++ b/.docker/app/Dockerfile @@ -1,25 +1,37 @@ -FROM registry.fakecake.org/docker.io/alpine:3.13 +FROM registry.fakecake.org/docker.io/alpine:3.16 EXPOSE 9000/tcp ENV SCRIPT_ROOT=/opt/epube ENV SRC_DIR=/src/epube -RUN apk add --no-cache php8 php8-fpm \ - php8-pdo php8-gd php8-mbstring \ - php8-intl php8-xml php8-session \ - php8-dom php8-fileinfo php8-json \ - php8-sqlite3 php8-pdo_sqlite sqlite \ - php8-zip php8-curl php8-openssl git \ - sudo php8-pecl-xdebug rsync && \ - sed -i -e 's/post_max_size = 8M/post_max_size = 64M/' /etc/php8/php.ini && \ +RUN apk add --no-cache php81 php81-fpm \ + php81-pdo php81-gd php81-mbstring php81-pecl-apcu \ + php81-intl php81-xml php81-session php81-opcache \ + php81-dom php81-fileinfo php81-json \ + php81-sqlite3 php81-pdo_sqlite sqlite \ + php81-zip php81-curl php81-openssl git \ + sudo php81-pecl-xdebug rsync && \ + sed -i -e 's/post_max_size = 8M/post_max_size = 64M/' /etc/php81/php.ini && \ sed -i -e 's/^listen = 127.0.0.1:9000/listen = 9000/' \ -e 's/;\(clear_env\) = .*/\1 = no/i' \ -e 's/^\(user\|group\) = .*/\1 = app/i' \ -e 's/;\(php_admin_value\[error_log\]\) = .*/\1 = \/tmp\/error.log/' \ -e 's/;\(php_admin_flag\[log_errors\]\) = .*/\1 = on/' \ - /etc/php8/php-fpm.d/www.conf && \ + /etc/php81/php-fpm.d/www.conf && \ mkdir -p /var/www ${SCRIPT_ROOT}/config.d +ARG CI_COMMIT_BRANCH +ENV CI_COMMIT_BRANCH=${CI_COMMIT_BRANCH} + +ARG CI_COMMIT_SHORT_SHA +ENV CI_COMMIT_SHORT_SHA=${CI_COMMIT_SHORT_SHA} + +ARG CI_COMMIT_TIMESTAMP +ENV CI_COMMIT_TIMESTAMP=${CI_COMMIT_TIMESTAMP} + +ARG CI_COMMIT_SHA +ENV CI_COMMIT_SHA=${CI_COMMIT_SHA} + ADD --chmod=0755 startup.sh ${SCRIPT_ROOT} ADD index.php ${SCRIPT_ROOT} ADD config.docker.php ${SCRIPT_ROOT} @@ -45,5 +57,4 @@ ENV EPUBE_BOOKS_DIR="/books" ENV EPUBE_CALIBRE_DB="/books/metadata.db" ENV EPUBE_DICT_SERVER="dict" - CMD ${SCRIPT_ROOT}/startup.sh diff --git a/.docker/app/startup.sh b/.docker/app/startup.sh index a6b4016..6c5f721 100644 --- a/.docker/app/startup.sh +++ b/.docker/app/startup.sh @@ -39,7 +39,7 @@ if [ -r ${SCRIPT_ROOT}/restore.db ]; then fi chown -R $OWNER_UID:$OWNER_GID $DST_DIR \ - /var/log/php8 + /var/log/php81 for d in db sessions; do chmod -R 777 $DST_DIR/$d @@ -53,7 +53,7 @@ if [ ! -z "${EPUBE_XDEBUG_ENABLED}" ]; then fi echo enabling xdebug with the following parameters: env | grep EPUBE_XDEBUG - cat > /etc/php8/conf.d/50_xdebug.ini < /etc/php81/conf.d/50_xdebug.ini <> /proc/1/fd/2) & -if ! sudo -Eu app php8 $DST_DIR/update.php --user-list | grep -q "$EPUBE_ADMIN_USER"; then - sudo -Eu app php8 $DST_DIR/update.php --user-add "$EPUBE_ADMIN_USER:$EPUBE_ADMIN_PASS" +if ! sudo -Eu app php81 $DST_DIR/update.php --user-list | grep -q "$EPUBE_ADMIN_USER"; then + sudo -Eu app php81 $DST_DIR/update.php --user-add "$EPUBE_ADMIN_USER:$EPUBE_ADMIN_PASS" fi touch $DST_DIR/.app_is_ready -exec /usr/sbin/php-fpm8 --nodaemonize --force-stderr -R +exec /usr/sbin/php-fpm81 --nodaemonize --force-stderr -R diff --git a/classes/config.php b/classes/config.php index 2fec4e0..8f7cbec 100644 --- a/classes/config.php +++ b/classes/config.php @@ -77,8 +77,16 @@ class Config { if (empty($this->version)) { $this->version["status"] = -1; - if (PHP_OS === "Darwin") { - $ttrss_version["version"] = "UNKNOWN (Unsupported, Darwin)"; + if (getenv("CI_COMMIT_SHORT_SHA") && getenv("CI_COMMIT_TIMESTAMP")) { + + $this->version["branch"] = getenv("CI_COMMIT_BRANCH"); + $this->version["timestamp"] = strtotime(getenv("CI_COMMIT_TIMESTAMP")); + $this->version["version"] = sprintf("%s-%s", date("y.m", $this->version["timestamp"]), getenv("CI_COMMIT_SHORT_SHA")); + $this->version["commit"] = getenv("CI_COMMIT_SHORT_SHA"); + $this->version["status"] = 0; + + } else if (PHP_OS === "Darwin") { + $this->version["version"] = "UNKNOWN (Unsupported, Darwin)"; } else if (file_exists("$root_dir/version_static.txt")) { $this->version["version"] = trim(file_get_contents("$root_dir/version_static.txt")) . " (Unsupported)"; } else if (is_dir("$root_dir/.git")) { @@ -108,6 +116,7 @@ class Config { "status" => -1, "version" => "", "commit" => "", + "branch" => "", "timestamp" => 0, ]; -- cgit v1.2.3