summaryrefslogtreecommitdiff
path: root/.docker/app/Dockerfile
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2023-03-25 22:41:47 +0300
committerAndrew Dolgov <[email protected]>2023-03-25 22:41:47 +0300
commit723323d7462954a262368d621811a045710cd1ed (patch)
treed1c4031e09d11d8af9e39def52ad743c35084a45 /.docker/app/Dockerfile
parentd305532bcef91061c39db13872d44c4f859054b7 (diff)
add gitea-CI docker builder
Diffstat (limited to '.docker/app/Dockerfile')
-rw-r--r--.docker/app/Dockerfile79
1 files changed, 79 insertions, 0 deletions
diff --git a/.docker/app/Dockerfile b/.docker/app/Dockerfile
new file mode 100644
index 000000000..1ccc5f764
--- /dev/null
+++ b/.docker/app/Dockerfile
@@ -0,0 +1,79 @@
+FROM registry.fakecake.org/alpine:3.17
+EXPOSE 9000/tcp
+
+ENV SCRIPT_ROOT=/opt/tt-rss
+ENV SRC_DIR=/src/tt-rss/
+
+COPY --from=app-src . ${SRC_DIR}
+
+RUN apk add --no-cache dcron php81 php81-fpm php81-phar \
+ php81-pdo php81-gd php81-pgsql php81-pdo_pgsql php81-xmlwriter \
+ php81-mbstring php81-intl php81-xml php81-curl php81-simplexml \
+ php81-session php81-tokenizer php81-dom php81-fileinfo php81-ctype \
+ php81-json php81-iconv php81-pcntl php81-posix php81-zip php81-exif \
+ php81-openssl git postgresql-client sudo php81-pecl-xdebug rsync tzdata && \
+ sed -i 's/\(memory_limit =\) 128M/\1 256M/' /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/php81/php-fpm.d/www.conf && \
+ mkdir -p /var/www ${SCRIPT_ROOT}/config.d
+
+ADD --chmod=0755 startup.sh ${SCRIPT_ROOT}
+ADD --chmod=0755 updater.sh ${SCRIPT_ROOT}
+ADD --chmod=0755 dcron.sh ${SCRIPT_ROOT}
+ADD --chmod=0755 backup.sh /etc/periodic/weekly/backup
+
+ADD index.php ${SCRIPT_ROOT}
+ADD config.docker.php ${SCRIPT_ROOT}
+
+ARG ORIGIN_REPO_MAIN=https://git.tt-rss.org/fox/tt-rss.git
+ARG ORIGIN_REPO_XACCEL=https://git.tt-rss.org/fox/ttrss-nginx-xaccel.git
+ARG ORIGIN_COMMIT=
+
+ENV ORIGIN_REPO_MAIN=${ORIGIN_REPO_MAIN}
+ENV ORIGIN_REPO_XACCEL=${ORIGIN_REPO_XACCEL}
+ENV ORIGIN_COMMIT=${ORIGIN_COMMIT}
+
+ENV OWNER_UID=1000
+ENV OWNER_GID=1000
+
+ENV PHP_WORKER_MAX_CHILDREN=5
+ENV PHP_WORKER_MEMORY_LIMIT=256M
+
+# these are applied on every startup, if set
+ENV ADMIN_USER_PASS=""
+# see classes/UserHelper.php ACCESS_LEVEL_*
+# setting this to -2 would effectively disable built-in admin user
+# unless single user mode is enabled
+ENV ADMIN_USER_ACCESS_LEVEL=""
+
+# these are applied unless user already exists
+ENV AUTO_CREATE_USER=""
+ENV AUTO_CREATE_USER_PASS=""
+ENV AUTO_CREATE_USER_ACCESS_LEVEL="0"
+
+# TODO: remove prefix from container variables not used by tt-rss itself:
+#
+# - TTRSS_NO_STARTUP_PLUGIN_UPDATES -> NO_STARTUP_PLUGIN_UPDATES
+# - TTRSS_XDEBUG_... -> XDEBUG_...
+
+# don't try to update local plugins on startup
+ENV TTRSS_NO_STARTUP_PLUGIN_UPDATES=""
+
+# TTRSS_XDEBUG_HOST defaults to host IP if unset
+ENV TTRSS_XDEBUG_ENABLED=""
+ENV TTRSS_XDEBUG_HOST=""
+ENV TTRSS_XDEBUG_PORT="9000"
+
+ENV TTRSS_DB_TYPE="pgsql"
+ENV TTRSS_DB_HOST="db"
+ENV TTRSS_DB_PORT="5432"
+
+ENV TTRSS_MYSQL_CHARSET="UTF8"
+ENV TTRSS_PHP_EXECUTABLE="/usr/bin/php81"
+ENV TTRSS_PLUGINS="auth_internal, note, nginx_xaccel"
+
+CMD ${SCRIPT_ROOT}/startup.sh