From 3974f4b415b3c73ed571858fd1d199dcc69b3017 Mon Sep 17 00:00:00 2001 From: monlor Date: Mon, 1 Jul 2024 16:02:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20=E6=B7=BB=E5=8A=A0weserv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-image-manual.yaml | 1 + emby/Dockerfile | 10 --- emby/README.md | 0 emby/entrypoint.sh | 22 ------ nginx-proxy-manager/Dockerfile | 55 -------------- nginx-proxy-manager/pagespeed.conf | 48 ------------- weserv/Dockerfile | 87 +++++++++++++++++++++++ weserv/README.md | 5 ++ 8 files changed, 93 insertions(+), 135 deletions(-) delete mode 100644 emby/Dockerfile delete mode 100644 emby/README.md delete mode 100644 emby/entrypoint.sh delete mode 100644 nginx-proxy-manager/Dockerfile delete mode 100644 nginx-proxy-manager/pagespeed.conf create mode 100644 weserv/Dockerfile create mode 100644 weserv/README.md diff --git a/.github/workflows/build-image-manual.yaml b/.github/workflows/build-image-manual.yaml index 43675df..164534b 100644 --- a/.github/workflows/build-image-manual.yaml +++ b/.github/workflows/build-image-manual.yaml @@ -34,6 +34,7 @@ on: - kubectl - radiance-bot - nezha + - webserv tag: description: 'Image tag' diff --git a/emby/Dockerfile b/emby/Dockerfile deleted file mode 100644 index 64b2d15..0000000 --- a/emby/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM lovechen/embyserver:latest - -ARG TARGETARCH - -ENV RCLONE_VERSION=v1.65.2 - -RUN wget https://downloads.rclone.org/${RCLONE_VERSION}/rclone-${RCLONE_VERSION}-linux-${TARGETARCH}.zip && \ - unzip rclone-${RCLONE_VERSION}-linux-${TARGETARCH}.zip && \ - cp -rf rclone-${RCLONE_VERSION}-linux-${TARGETARCH}/rclone /usr/bin/ && \ - rm -rf rclone-${RCLONE_VERSION}-linux-${TARGETARCH} rclone-${RCLONE_VERSION}-linux-${TARGETARCH}.zip \ No newline at end of file diff --git a/emby/README.md b/emby/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/emby/entrypoint.sh b/emby/entrypoint.sh deleted file mode 100644 index 42861ce..0000000 --- a/emby/entrypoint.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -RCLONE_CONFIG_PATH=${RCLONE_CONFIG_PATH:-/etc/rclone/rclone.conf} -RCLONE_CONFIG=${RCLONE_CONFIG:-AllDrives} - -if [ -f "${RCLONE_CONFIG_PATH}" ]; then - - echo ${RCLONE_CONFIG} | tr ',' '\n' | while read config; do - rclone --config "${RCLONE_CONFIG_PATH}" mount "${config}:" "/mnt/${config}" \ - --umask 0000 \ - --default-permissions \ - --allow-other \ - --allow-non-empty \ - --buffer-size 32M \ - --dir-cache-time 12h \ - --vfs-read-chunk-size 64M \ - --vfs-read-chunk-size-limit 1G & - done - -fi - -/init \ No newline at end of file diff --git a/nginx-proxy-manager/Dockerfile b/nginx-proxy-manager/Dockerfile deleted file mode 100644 index 1fe450c..0000000 --- a/nginx-proxy-manager/Dockerfile +++ /dev/null @@ -1,55 +0,0 @@ -FROM jc21/nginx-proxy-manager:latest - -ENV OPENRESTY_VERSION ${OPENRESTY_VERSION} - -RUN apt update && apt install -y uuid-dev libssl-dev zlib1g-dev libpcre3 libpcre3-dev build-essential - -#Download openresty & pagespeed -RUN cd /tmp && curl "https://openresty.org/download/openresty-${OPENRESTY_VERSION}.tar.gz" | tar zx -RUN cd /tmp/openresty-${OPENRESTY_VERSION} && curl -O https://codeload.github.com/apache/incubator-pagespeed-ngx/zip/v1.14.33.1-RC1 && unzip v1.14.33.1-RC1 && rm v1.14.33.1-RC1 -RUN cd /tmp/openresty-${OPENRESTY_VERSION}/incubator-pagespeed-ngx-1.14.33.1-RC1 && curl https://dist.apache.org/repos/dist/release/incubator/pagespeed/1.14.36.1/x64/psol-1.14.36.1-apache-incubating-x64.tar.gz |tar zx - -#Config and make -RUN cd /tmp/openresty-${OPENRESTY_VERSION} && \ - ./configure \ - --prefix=/etc/nginx \ - --sbin-path=/usr/sbin/nginx \ - --modules-path=/usr/lib/nginx/modules \ - --conf-path=/etc/nginx/nginx.conf \ - --error-log-path=/var/log/nginx/error.log \ - --http-log-path=/var/log/nginx/access.log \ - --pid-path=/var/run/nginx.pid \ - --lock-path=/var/run/nginx.lock \ - --http-client-body-temp-path=/var/cache/nginx/client_temp \ - --http-proxy-temp-path=/var/cache/nginx/proxy_temp \ - --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \ - --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \ - --http-scgi-temp-path=/var/cache/nginx/scgi_temp \ - --user=nginx \ - --group=nginx \ - --with-compat \ - --with-threads \ - --with-http_addition_module \ - --with-http_auth_request_module \ - --with-http_dav_module \ - --with-http_flv_module \ - --with-http_gunzip_module \ - --with-http_gzip_static_module \ - --with-http_mp4_module \ - --with-http_random_index_module \ - --with-http_realip_module \ - --with-http_secure_link_module \ - --with-http_slice_module \ - --with-http_ssl_module \ - --with-http_stub_status_module \ - --with-http_sub_module \ - --with-http_v2_module \ - --with-mail \ - --with-mail_ssl_module \ - --with-stream \ - --with-stream_realip_module \ - --with-stream_ssl_module \ - --with-stream_ssl_preread_module \ - --add-module=incubator-pagespeed-ngx-1.14.33.1-RC1 && \ - make -j2 && \ - make install \ No newline at end of file diff --git a/nginx-proxy-manager/pagespeed.conf b/nginx-proxy-manager/pagespeed.conf deleted file mode 100644 index 2bc0c90..0000000 --- a/nginx-proxy-manager/pagespeed.conf +++ /dev/null @@ -1,48 +0,0 @@ -# enable ngx_pagespeed -pagespeed on; - -pagespeed FileCachePath /var/ngx_pagespeed_cache; - -# let's speed up PageSpeed by storing it in the super duper fast memcached -# pagespeed MemcachedThreads 1; -# pagespeed MemcachedServers "localhost:11211"; - -# disable CoreFilters -pagespeed RewriteLevel PassThrough; - -# enable collapse whitespace filter -pagespeed EnableFilters collapse_whitespace; - -# enable JavaScript library offload -pagespeed EnableFilters canonicalize_javascript_libraries; - -# combine multiple CSS files into one -pagespeed EnableFilters combine_css; - -# combine multiple JavaScript files into one -pagespeed EnableFilters combine_javascript; - -# remove tags with default attributes -pagespeed EnableFilters elide_attributes; - -# improve resource cacheability -pagespeed EnableFilters extend_cache; - -# flatten CSS files by replacing @import with the imported file -pagespeed EnableFilters flatten_css_imports; -pagespeed CssFlattenMaxBytes 5120; - -# defer the loading of images which are not visible to the client -pagespeed EnableFilters lazyload_images; - -# enable JavaScript minification -pagespeed EnableFilters rewrite_javascript; - -# enable image optimization -pagespeed EnableFilters rewrite_images; - -# pre-solve DNS lookup -pagespeed EnableFilters insert_dns_prefetch; - -# rewrite CSS to load page-rendering CSS rules first. -pagespeed EnableFilters prioritize_critical_css; \ No newline at end of file diff --git a/weserv/Dockerfile b/weserv/Dockerfile new file mode 100644 index 0000000..ee81cb1 --- /dev/null +++ b/weserv/Dockerfile @@ -0,0 +1,87 @@ +FROM rockylinux:9 + +LABEL MAINTAINER=me@monlor.com +LABEL VERSION=1.0.0 + +LABEL source_maintainer="Kleis Auke Wolthuizen " + +ARG NGINX_VERSION=1.27.0 + +WORKDIR /var/www/imagesweserv + +RUN curl https://github.com/weserv/images/archive/refs/heads/5.x.zip -o images.zip && \ + unzip images.zip && \ + cp -a images-5.x/* /var/www/imagesweserv/ && \ + rm -rf images.zip images-5.x + +# Update packages +RUN dnf update -y \ + # Install libvips and needed dependencies + && dnf install -y epel-release \ + && crb enable \ + && dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm \ + && dnf config-manager --set-enabled remi \ + && dnf install -y --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm \ + && dnf group install -y --with-optional 'Development Tools' \ + && dnf install -y --setopt=tsflags=nodocs --setopt=install_weak_deps=False \ + vips-devel \ + vips-heif \ + vips-poppler \ + vips-magick-im6 \ + jemalloc-devel \ + openssl-devel \ + pcre2-devel \ + zlib-devel \ + nginx-filesystem \ + # Build CMake-based project + && cmake -S . -B _build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_TOOLS=ON \ + -DNGX_VERSION=$NGINX_VERSION \ + -DCUSTOM_NGX_FLAGS="--prefix=/usr/share/nginx;\ +--sbin-path=/usr/sbin/nginx;\ +--modules-path=/usr/lib64/nginx/modules;\ +--conf-path=/etc/nginx/nginx.conf;\ +--error-log-path=/var/log/nginx/error.log;\ +--http-log-path=/var/log/nginx/access.log;\ +--http-client-body-temp-path=/var/lib/nginx/tmp/client_body;\ +--http-proxy-temp-path=/var/lib/nginx/tmp/proxy;\ +--http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi;\ +--http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi;\ +--http-scgi-temp-path=/var/lib/nginx/tmp/scgi;\ +--pid-path=/run/nginx.pid;\ +--lock-path=/run/lock/subsys/nginx;\ +--user=nginx;\ +--group=nginx" \ + && cmake --build _build -- -j$(nproc) \ + && ldconfig \ + # Remove build directory and dependencies + && rm -rf _build \ + && dnf group remove -y 'Development Tools' \ + && dnf remove -y \ + vips-devel \ + openssl-devel \ + pcre2-devel \ + zlib-devel \ + && dnf clean all \ + # Ensure nginx directories exist with the correct permissions + && mkdir -m 700 /var/lib/nginx \ + && mkdir -m 700 /var/lib/nginx/tmp \ + && mkdir -m 700 /usr/lib64/nginx \ + && mkdir -m 755 /usr/lib64/nginx/modules \ + # Forward request and error logs to docker log collector + && ln -sf /dev/stdout /var/log/nginx/weserv-access.log \ + && ln -sf /dev/stderr /var/log/nginx/weserv-error.log \ + # Copy nginx configuration to the appropriate location + && cp ngx_conf/*.conf /etc/nginx + +# Set default timezone (can be overridden with -e "TZ=Continent/City") +ENV TZ=Asia/Shanghai \ + # Use jemalloc on glibc-based Linux systems to reduce the effects of memory fragmentation + LD_PRELOAD=/usr/lib64/libjemalloc.so + +EXPOSE 80 + +STOPSIGNAL SIGQUIT + +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/weserv/README.md b/weserv/README.md new file mode 100644 index 0000000..b4b5486 --- /dev/null +++ b/weserv/README.md @@ -0,0 +1,5 @@ +## 介绍 + +在线图片处理,适配arm + +来源:https://github.com/weserv/images \ No newline at end of file