|
| 1 | +# syntax=docker/dockerfile:1 |
| 2 | + |
| 3 | +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.22 |
| 4 | + |
| 5 | +ARG BUILD_DATE |
| 6 | +ARG VERSION |
| 7 | +ARG SPEEDTEST_TRACKER_VERSION |
| 8 | +LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" |
| 9 | +LABEL maintainer="thespad" |
| 10 | + |
| 11 | +ENV HOME=/config |
| 12 | + |
| 13 | +RUN \ |
| 14 | + apk add --no-cache \ |
| 15 | + grep \ |
| 16 | + php84-gd \ |
| 17 | + php84-intl \ |
| 18 | + php84-pdo_mysql \ |
| 19 | + php84-pdo_pgsql \ |
| 20 | + php84-pdo_sqlite \ |
| 21 | + php84-pecl-redis \ |
| 22 | + php84-tokenizer \ |
| 23 | + php84-xmlreader \ |
| 24 | + postgresql16-client \ |
| 25 | + ssmtp && \ |
| 26 | + apk add --no-cache --virtual=build-dependencies \ |
| 27 | + npm && \ |
| 28 | + echo "*** install speedtest-cli ***" && \ |
| 29 | + if [ -z ${CLI_VERSION+x} ]; then \ |
| 30 | + CLI_VERSION=$(curl -Ls https://packagecloud.io/ookla/speedtest-cli/debian/dists/bookworm/main/binary-armhf/Packages \ |
| 31 | + | sed -n '/Package: speedtest/,/Homepage:/p' \ |
| 32 | + | grep -oP 'Version: \K\S+' | cut -d. -f1-3); \ |
| 33 | + fi && \ |
| 34 | + curl -o \ |
| 35 | + /tmp/speedtest-cli.tgz -L \ |
| 36 | + "https://install.speedtest.net/app/cli/ookla-speedtest-${CLI_VERSION}-linux-armhf.tgz" && \ |
| 37 | + tar xzf \ |
| 38 | + /tmp/speedtest-cli.tgz -C \ |
| 39 | + /usr/bin && \ |
| 40 | + echo "**** configure php-fpm to pass env vars ****" && \ |
| 41 | + sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \ |
| 42 | + grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf && \ |
| 43 | + echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \ |
| 44 | + echo "*** install speedtest-tracker ***" && \ |
| 45 | + if [ -z ${SPEEDTEST_TRACKER_VERSION+x} ]; then \ |
| 46 | + SPEEDTEST_TRACKER_VERSION=$(curl -sX GET "https://api.github.com/repos/alexjustesen/speedtest-tracker/releases/latest" \ |
| 47 | + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ |
| 48 | + fi && \ |
| 49 | + curl -o \ |
| 50 | + /tmp/speedtest-tracker.tar.gz -L \ |
| 51 | + "https://github.com/alexjustesen/speedtest-tracker/archive/${SPEEDTEST_TRACKER_VERSION}.tar.gz" && \ |
| 52 | + mkdir -p /app/www && \ |
| 53 | + tar xzf \ |
| 54 | + /tmp/speedtest-tracker.tar.gz -C \ |
| 55 | + /app/www/ --strip-components=1 && \ |
| 56 | + cd /app/www && \ |
| 57 | + composer install \ |
| 58 | + --no-interaction \ |
| 59 | + --prefer-dist \ |
| 60 | + --optimize-autoloader \ |
| 61 | + --no-dev \ |
| 62 | + --no-cache && \ |
| 63 | + npm ci && npm run build && \ |
| 64 | + echo "**** setup php opcache ****" && \ |
| 65 | + { \ |
| 66 | + echo 'opcache.enable_cli=1'; \ |
| 67 | + } > /etc/php84/conf.d/opcache-recommended.ini; \ |
| 68 | + { \ |
| 69 | + echo 'post_max_size = 100M'; \ |
| 70 | + echo 'upload_max_filesize = 100M'; \ |
| 71 | + echo 'variables_order = EGPCS'; \ |
| 72 | + } > /etc/php84/conf.d/php-misc.ini && \ |
| 73 | + printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ |
| 74 | + echo "**** cleanup ****" && \ |
| 75 | + apk del --purge build-dependencies && \ |
| 76 | + rm -rf \ |
| 77 | + $HOME/.cache \ |
| 78 | + $HOME/.npm \ |
| 79 | + /app/www/node_modules \ |
| 80 | + /tmp/* |
| 81 | + |
| 82 | +COPY root/ / |
| 83 | + |
| 84 | +VOLUME /config |
0 commit comments