summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2023-04-10 22:29:36 +0300
committerAndrew Dolgov <[email protected]>2023-04-10 22:29:36 +0300
commit0fef52be0a4adbfe3a7b092f355dd78d0f4855d6 (patch)
tree8e67600493e2b25cac358728181a783202289a21
parente6475b522f817256333af7d34c808088ea4ab86e (diff)
get version from CI variables, rebase to php 8.1 & alpine 3.16
-rw-r--r--.docker/app/Dockerfile33
-rw-r--r--.docker/app/startup.sh16
-rw-r--r--classes/config.php13
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 <<EOF
+ cat > /etc/php81/conf.d/50_xdebug.ini <<EOF
zend_extension=xdebug.so
xdebug.mode=develop,trace,debug
xdebug.start_with_request = yes
@@ -63,21 +63,21 @@ EOF
fi
sed -i.bak "s/^\(memory_limit\) = \(.*\)/\1 = ${PHP_WORKER_MEMORY_LIMIT}/" \
- /etc/php8/php.ini
+ /etc/php81/php.ini
sed -i.bak "s/^\(pm.max_children\) = \(.*\)/\1 = ${PHP_WORKER_MAX_CHILDREN}/" \
- /etc/php8/php-fpm.d/www.conf
+ /etc/php81/php-fpm.d/www.conf
-sudo -Eu app php8 $DST_DIR/update.php --update-schema=force-yes
+sudo -Eu app php81 $DST_DIR/update.php --update-schema=force-yes
rm -f /tmp/error.log && mkfifo /tmp/error.log && chown app:app /tmp/error.log
(tail -q -f /tmp/error.log >> /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,
];