2026-05-13 02:59:53 UTC
549 MB
true
CALIBRE_CONFIG_DIRECTORY/config/calibre-server
CALIBRE_DBPATH/config/calibre-web
CALIBRE_LOCALHOSTtrue
CALIBRE_PORT8083
CALIBRE_RECONNECTtrue
CALIBRE_SERVER_PASSWORD CALIBRE_SERVER_PORT8080
CALIBRE_SERVER_RESTART_AUTOtrue
CALIBRE_SERVER_USER CALIBRE_SERVER_WEB_LANGUAGEzh_CN
CALIBRE_WEB_LANGUAGEzh_Hans_CN
DISABLE_AMAZON_SEARCHfalse
DISABLE_COMICVINE_SEARCHfalse
DISABLE_DOUBAN_SEARCHfalse
DISABLE_GOOGLE_SEARCHfalse
DISABLE_LUBIMYCZYTAC_SEARCHfalse
DISABLE_SCHOLAR_SEARCHfalse
ENABLE_AUTOADDBOOKStrue
ENABLE_CALIBREDB_URLLIBRARYPATHtrue
ENABLE_CALIBRE_SERVERfalse
ENABLE_CALIBRE_SERVER_OPDSfalse
ENABLE_CHOWN_LIBRARYtrue
ENABLE_FIX_COVER_COLORfalse
GID1000
HOME/home/calibre
LANGC.UTF-8
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
QTWEBENGINE_CHROMIUM_FLAGS--no-sandbox
S6_CMD_WAIT_FOR_SERVICES_MAXTIME0
TZAsia/Shanghai
UID1000
[#000] sha256:6a0ac1617861a677b045b7ff88545213ec31c0ff08763195a70a4a5adda577bb - 0.67% (3.69 MB)
[#001] sha256:6b548d58b96557488b0d0283b6e46b2580e36095f67d42bdabb710d21dddfba7 - 0.0% (3.22 KB)
[#002] sha256:9df8977d62fd1cc88c628a7537cb5bafd9da60cf77138424bf54b2e3d93daf7c - 99.33% (545 MB)
ADD alpine-minirootfs-3.23.4-x86_64.tar.gz / # buildkit
2026-04-15 20:01:40 UTC (buildkit.dockerfile.v0)CMD ["/bin/sh"]
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG S6_VER=3.2.3.0
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG CALIBRE_WEB_VER=0.6.26
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG CALIBRE_VER=8.16.2
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG KEPUBIFY_VER=4.0.4
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG UNRAR_VERSION=7.2.2
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV UID=1000
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV GID=1000
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_AUTOADDBOOKS=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_CALIBRE_SERVER=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_CALIBRE_SERVER_OPDS=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_CALIBREDB_URLLIBRARYPATH=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_RESTART_AUTO=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_USER=
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_PASSWORD=
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_WEB_LANGUAGE=zh_CN
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_PORT=8080
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_PORT=8083
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_ASCII_FILENAME=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_WEB_LANGUAGE=zh_Hans_CN
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV TZ=Asia/Shanghai
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBREDB_OTHER_OPTION=
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_GOOGLE_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_SCHOLAR_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_AMAZON_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_COMICVINE_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_DOUBAN_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_LUBIMYCZYTAC_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_CHOWN_LIBRARY=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV HOME=/home/calibre
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV QTWEBENGINE_CHROMIUM_FLAGS=--no-sandbox
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_DBPATH=/config/calibre-web
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_CONFIG_DIRECTORY=/config/calibre-server
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_LOCALHOST=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_RECONNECT=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_FIX_COVER_COLOR=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)COPY --chmod=755 root / # buildkit
2026-05-13 02:59:53 UTC (buildkit.dockerfile.v0)RUN |5 S6_VER=3.2.3.0 CALIBRE_WEB_VER=0.6.26 CALIBRE_VER=8.16.2 KEPUBIFY_VER=4.0.4 UNRAR_VERSION=7.2.2 /bin/sh -c apk upgrade && apk add --no-cache bash ca-certificates shadow tzdata python3 expect ttf-dejavu inotify-tools libldap sqlite xdg-utils font-wqy-zenhei poppler-data jq libstemmer imagemagick py3-gpep517 py3-wheel py3-pip py3-cryptography py3-gevent && pip3 install --no-cache-dir setuptools==82.0.1 --break-system-packages && apk add --no-cache font-liberation libjpeg-turbo-utils libwmf mtdev optipng poppler py3-beautifulsoup4 py3-css-parser py3-cssselect py3-dateutil py3-dnspython py3-feedparser py3-fonttools py3-html2text py3-html5lib py3-jeepney py3-lxml py3-markdown py3-mechanize py3-msgpack py3-netifaces py3-pillow py3-psutil py3-pycryptodome py3-pygments py3-pyqt6-webengine py3-regex py3-xxhash py3-zeroconf qt6-qtimageformats qt6-qtsvg qt6-qtwebengine qt6-qtbase-private-dev udisks2 podofo espeak-ng py3-chardet && apk add --no-cache --virtual builddep cmake curl ffmpeg-dev hunspell-dev hyphen-dev libmtp-dev libstemmer-dev libusb-dev py3-pyqt-builder py3-pyqt6-sip py3-qt6 py3-sip python3-dev qt6-qtbase-dev uchardet-dev xdg-utils podofo-dev espeak-ng-dev build-base rust cargo libffi-dev git openldap-dev libxml2-dev libxslt-dev libjpeg-turbo-dev libevent-dev file cython openssl-dev linux-headers && pip3 install --no-cache-dir apsw html5-parser --break-system-packages && mkdir /tmp/calibre && wget -P /tmp https://download.calibre-ebook.com/${CALIBRE_VER}/calibre-${CALIBRE_VER}.tar.xz && tar -xJf /tmp/calibre-${CALIBRE_VER}.tar.xz -C /tmp/calibre --strip-components=1 && cd /tmp/calibre && wget https://github.com/alpinelinux/aports/raw/refs/tags/v20251224/testing/calibre/0003-calibre-disable-piper.patch && patch -p1 < 0003-calibre-disable-piper.patch && echo -e "\nimport re\r#https://github.com/snomiao/calibre-utf8-path\r# 定义文件名转换函数\rdef re_filename(filename):\r if len(filename) > 80:\r filename = filename[0:80]\r# 替换为空\r return re.sub(r\"[\/\\\\\\\\\\:\*\?\\\"\<\>\|\\\\0]\", \"\", filename)\r" >> src/calibre/db/backend.py && sed -i s/"author = ascii_filename(author"/" author = ascii_filename(author"/g src/calibre/db/backend.py && sed -i s/"title = ascii_filename(title"/" title = ascii_filename(title"/g src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ ascii_filename_set = os.environ.get('CALIBRE_ASCII_FILENAME', 'true')" src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ if ascii_filename_set == 'false':" src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ author = re_filename(author)[:l]" src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ title = re_filename(title.lstrip())[:l].rstrip()" src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ else:" src/calibre/db/backend.py && python3 setup.py build && python3 setup.py iso639 && python3 setup.py iso3166 && python3 setup.py liberation_fonts --system-liberation_fonts --path-to-liberation_fonts /usr/share/fonts/liberation && python3 setup.py mathjax && python3 setup.py gui && python3 setup.py install --prefix=/usr/local && mkdir /tmp/unrar && wget -P /tmp https://www.rarlab.com/rar/unrarsrc-${UNRAR_VERSION}.tar.gz && tar xf /tmp/unrarsrc-${UNRAR_VERSION}.tar.gz -C /tmp/unrar --strip-components=1 && cd /tmp/unrar && sed -i 's|LDFLAGS=-pthread|LDFLAGS=-pthread -static|' makefile && sed -i 's|CXXFLAGS=-march=native |CXXFLAGS=|' makefile && make -j $(nproc) && install -v -m755 unrar /usr/bin && /usr/bin/unrar && if [ "$(uname -m)" = "x86_64" ];then s6_arch=x86_64;elif [ "$(uname -m)" = "aarch64" ];then s6_arch=aarch64;elif [ "$(uname -m)" = "armv7l" ];then s6_arch=arm; fi && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-noarch.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-${s6_arch}.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-${s6_arch}.tar.xz && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-symlinks-noarch.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-symlinks-arch.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz && wget -P /tmp https://github.com/janeczku/calibre-web/archive/refs/tags/${CALIBRE_WEB_VER}.tar.gz && mkdir -p /usr/local/calibre-web/app && tar xf /tmp/${CALIBRE_WEB_VER}.tar.gz -C /usr/local/calibre-web/app --strip-components=1 && sed -i '/^lxml/d' /usr/local/calibre-web/app/requirements.txt && pip3 install --no-cache-dir -r /usr/local/calibre-web/app/requirements.txt --break-system-packages && pip3 install --no-cache-dir selenium==4.36.0 --break-system-packages && pip3 install --no-cache-dir -r /usr/local/calibre-web/app/optional-requirements.txt --break-system-packages && if [ "$(uname -m)" = "x86_64" ];then kepubify_arch=64bit;elif [ "$(uname -m)" = "aarch64" ];then kepubify_arch=arm64;elif [ "$(uname -m)" = "armv7l" ];then kepubify_arch=arm; fi && wget https://github.com/pgaskin/kepubify/releases/download/v${KEPUBIFY_VER}/kepubify-linux-${kepubify_arch} -O /usr/local/bin/kepubify && chmod 755 /usr/local/bin/kepubify && mkdir -p /home/calibre && useradd -u 1000 -U -d /home/calibre -s /bin/false calibre && usermod -G users calibre && chown -R calibre:calibre /usr/local/calibre-web && apk del builddep && rm -rf /var/cache/apk/* /tmp/* /home/calibre/.c* # buildkit
2026-05-13 02:59:53 UTC (buildkit.dockerfile.v0)VOLUME [/library /config /autoaddbooks]
2026-05-13 02:59:53 UTC (buildkit.dockerfile.v0)EXPOSE [8080/tcp 8083/tcp]
2026-05-13 02:59:53 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/init"]
2026-05-13 05:19:52 UTC
496 MB
true
CALIBRE_CONFIG_DIRECTORY/config/calibre-server
CALIBRE_DBPATH/config/calibre-web
CALIBRE_LOCALHOSTtrue
CALIBRE_PORT8083
CALIBRE_RECONNECTtrue
CALIBRE_SERVER_PASSWORD CALIBRE_SERVER_PORT8080
CALIBRE_SERVER_RESTART_AUTOtrue
CALIBRE_SERVER_USER CALIBRE_SERVER_WEB_LANGUAGEzh_CN
CALIBRE_WEB_LANGUAGEzh_Hans_CN
DISABLE_AMAZON_SEARCHfalse
DISABLE_COMICVINE_SEARCHfalse
DISABLE_DOUBAN_SEARCHfalse
DISABLE_GOOGLE_SEARCHfalse
DISABLE_LUBIMYCZYTAC_SEARCHfalse
DISABLE_SCHOLAR_SEARCHfalse
ENABLE_AUTOADDBOOKStrue
ENABLE_CALIBREDB_URLLIBRARYPATHtrue
ENABLE_CALIBRE_SERVERfalse
ENABLE_CALIBRE_SERVER_OPDSfalse
ENABLE_CHOWN_LIBRARYtrue
ENABLE_FIX_COVER_COLORfalse
GID1000
HOME/home/calibre
LANGC.UTF-8
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
QTWEBENGINE_CHROMIUM_FLAGS--no-sandbox
S6_CMD_WAIT_FOR_SERVICES_MAXTIME0
TZAsia/Shanghai
UID1000
[#000] sha256:c160e404c59d6d30c66a0d74bbd17337f178f5d898a9908e18c71ce3bbe28c99 - 0.63% (3.13 MB)
[#001] sha256:6b548d58b96557488b0d0283b6e46b2580e36095f67d42bdabb710d21dddfba7 - 0.0% (3.22 KB)
[#002] sha256:3af017edaef91e735358efda4789bd769cb4ddf2fede8a2a0efefa4b5d36347f - 99.37% (493 MB)
ADD alpine-minirootfs-3.23.4-armv7.tar.gz / # buildkit
2026-04-15 20:01:47 UTC (buildkit.dockerfile.v0)CMD ["/bin/sh"]
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG S6_VER=3.2.3.0
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG CALIBRE_WEB_VER=0.6.26
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG CALIBRE_VER=8.16.2
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG KEPUBIFY_VER=4.0.4
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG UNRAR_VERSION=7.2.2
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV UID=1000
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV GID=1000
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_AUTOADDBOOKS=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_CALIBRE_SERVER=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_CALIBRE_SERVER_OPDS=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_CALIBREDB_URLLIBRARYPATH=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_RESTART_AUTO=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_USER=
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_PASSWORD=
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_WEB_LANGUAGE=zh_CN
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_PORT=8080
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_PORT=8083
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_ASCII_FILENAME=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_WEB_LANGUAGE=zh_Hans_CN
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV TZ=Asia/Shanghai
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBREDB_OTHER_OPTION=
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_GOOGLE_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_SCHOLAR_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_AMAZON_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_COMICVINE_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_DOUBAN_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_LUBIMYCZYTAC_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_CHOWN_LIBRARY=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV HOME=/home/calibre
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV QTWEBENGINE_CHROMIUM_FLAGS=--no-sandbox
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_DBPATH=/config/calibre-web
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_CONFIG_DIRECTORY=/config/calibre-server
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_LOCALHOST=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_RECONNECT=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_FIX_COVER_COLOR=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)COPY --chmod=755 root / # buildkit
2026-05-13 05:19:52 UTC (buildkit.dockerfile.v0)RUN |5 S6_VER=3.2.3.0 CALIBRE_WEB_VER=0.6.26 CALIBRE_VER=8.16.2 KEPUBIFY_VER=4.0.4 UNRAR_VERSION=7.2.2 /bin/sh -c apk upgrade && apk add --no-cache bash ca-certificates shadow tzdata python3 expect ttf-dejavu inotify-tools libldap sqlite xdg-utils font-wqy-zenhei poppler-data jq libstemmer imagemagick py3-gpep517 py3-wheel py3-pip py3-cryptography py3-gevent && pip3 install --no-cache-dir setuptools==82.0.1 --break-system-packages && apk add --no-cache font-liberation libjpeg-turbo-utils libwmf mtdev optipng poppler py3-beautifulsoup4 py3-css-parser py3-cssselect py3-dateutil py3-dnspython py3-feedparser py3-fonttools py3-html2text py3-html5lib py3-jeepney py3-lxml py3-markdown py3-mechanize py3-msgpack py3-netifaces py3-pillow py3-psutil py3-pycryptodome py3-pygments py3-pyqt6-webengine py3-regex py3-xxhash py3-zeroconf qt6-qtimageformats qt6-qtsvg qt6-qtwebengine qt6-qtbase-private-dev udisks2 podofo espeak-ng py3-chardet && apk add --no-cache --virtual builddep cmake curl ffmpeg-dev hunspell-dev hyphen-dev libmtp-dev libstemmer-dev libusb-dev py3-pyqt-builder py3-pyqt6-sip py3-qt6 py3-sip python3-dev qt6-qtbase-dev uchardet-dev xdg-utils podofo-dev espeak-ng-dev build-base rust cargo libffi-dev git openldap-dev libxml2-dev libxslt-dev libjpeg-turbo-dev libevent-dev file cython openssl-dev linux-headers && pip3 install --no-cache-dir apsw html5-parser --break-system-packages && mkdir /tmp/calibre && wget -P /tmp https://download.calibre-ebook.com/${CALIBRE_VER}/calibre-${CALIBRE_VER}.tar.xz && tar -xJf /tmp/calibre-${CALIBRE_VER}.tar.xz -C /tmp/calibre --strip-components=1 && cd /tmp/calibre && wget https://github.com/alpinelinux/aports/raw/refs/tags/v20251224/testing/calibre/0003-calibre-disable-piper.patch && patch -p1 < 0003-calibre-disable-piper.patch && echo -e "\nimport re\r#https://github.com/snomiao/calibre-utf8-path\r# 定义文件名转换函数\rdef re_filename(filename):\r if len(filename) > 80:\r filename = filename[0:80]\r# 替换为空\r return re.sub(r\"[\/\\\\\\\\\\:\*\?\\\"\<\>\|\\\\0]\", \"\", filename)\r" >> src/calibre/db/backend.py && sed -i s/"author = ascii_filename(author"/" author = ascii_filename(author"/g src/calibre/db/backend.py && sed -i s/"title = ascii_filename(title"/" title = ascii_filename(title"/g src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ ascii_filename_set = os.environ.get('CALIBRE_ASCII_FILENAME', 'true')" src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ if ascii_filename_set == 'false':" src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ author = re_filename(author)[:l]" src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ title = re_filename(title.lstrip())[:l].rstrip()" src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ else:" src/calibre/db/backend.py && python3 setup.py build && python3 setup.py iso639 && python3 setup.py iso3166 && python3 setup.py liberation_fonts --system-liberation_fonts --path-to-liberation_fonts /usr/share/fonts/liberation && python3 setup.py mathjax && python3 setup.py gui && python3 setup.py install --prefix=/usr/local && mkdir /tmp/unrar && wget -P /tmp https://www.rarlab.com/rar/unrarsrc-${UNRAR_VERSION}.tar.gz && tar xf /tmp/unrarsrc-${UNRAR_VERSION}.tar.gz -C /tmp/unrar --strip-components=1 && cd /tmp/unrar && sed -i 's|LDFLAGS=-pthread|LDFLAGS=-pthread -static|' makefile && sed -i 's|CXXFLAGS=-march=native |CXXFLAGS=|' makefile && make -j $(nproc) && install -v -m755 unrar /usr/bin && /usr/bin/unrar && if [ "$(uname -m)" = "x86_64" ];then s6_arch=x86_64;elif [ "$(uname -m)" = "aarch64" ];then s6_arch=aarch64;elif [ "$(uname -m)" = "armv7l" ];then s6_arch=arm; fi && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-noarch.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-${s6_arch}.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-${s6_arch}.tar.xz && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-symlinks-noarch.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-symlinks-arch.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz && wget -P /tmp https://github.com/janeczku/calibre-web/archive/refs/tags/${CALIBRE_WEB_VER}.tar.gz && mkdir -p /usr/local/calibre-web/app && tar xf /tmp/${CALIBRE_WEB_VER}.tar.gz -C /usr/local/calibre-web/app --strip-components=1 && sed -i '/^lxml/d' /usr/local/calibre-web/app/requirements.txt && pip3 install --no-cache-dir -r /usr/local/calibre-web/app/requirements.txt --break-system-packages && pip3 install --no-cache-dir selenium==4.36.0 --break-system-packages && pip3 install --no-cache-dir -r /usr/local/calibre-web/app/optional-requirements.txt --break-system-packages && if [ "$(uname -m)" = "x86_64" ];then kepubify_arch=64bit;elif [ "$(uname -m)" = "aarch64" ];then kepubify_arch=arm64;elif [ "$(uname -m)" = "armv7l" ];then kepubify_arch=arm; fi && wget https://github.com/pgaskin/kepubify/releases/download/v${KEPUBIFY_VER}/kepubify-linux-${kepubify_arch} -O /usr/local/bin/kepubify && chmod 755 /usr/local/bin/kepubify && mkdir -p /home/calibre && useradd -u 1000 -U -d /home/calibre -s /bin/false calibre && usermod -G users calibre && chown -R calibre:calibre /usr/local/calibre-web && apk del builddep && rm -rf /var/cache/apk/* /tmp/* /home/calibre/.c* # buildkit
2026-05-13 05:19:52 UTC (buildkit.dockerfile.v0)VOLUME [/library /config /autoaddbooks]
2026-05-13 05:19:52 UTC (buildkit.dockerfile.v0)EXPOSE [8080/tcp 8083/tcp]
2026-05-13 05:19:52 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/init"]
2026-05-13 03:57:40 UTC
530 MB
true
CALIBRE_CONFIG_DIRECTORY/config/calibre-server
CALIBRE_DBPATH/config/calibre-web
CALIBRE_LOCALHOSTtrue
CALIBRE_PORT8083
CALIBRE_RECONNECTtrue
CALIBRE_SERVER_PASSWORD CALIBRE_SERVER_PORT8080
CALIBRE_SERVER_RESTART_AUTOtrue
CALIBRE_SERVER_USER CALIBRE_SERVER_WEB_LANGUAGEzh_CN
CALIBRE_WEB_LANGUAGEzh_Hans_CN
DISABLE_AMAZON_SEARCHfalse
DISABLE_COMICVINE_SEARCHfalse
DISABLE_DOUBAN_SEARCHfalse
DISABLE_GOOGLE_SEARCHfalse
DISABLE_LUBIMYCZYTAC_SEARCHfalse
DISABLE_SCHOLAR_SEARCHfalse
ENABLE_AUTOADDBOOKStrue
ENABLE_CALIBREDB_URLLIBRARYPATHtrue
ENABLE_CALIBRE_SERVERfalse
ENABLE_CALIBRE_SERVER_OPDSfalse
ENABLE_CHOWN_LIBRARYtrue
ENABLE_FIX_COVER_COLORfalse
GID1000
HOME/home/calibre
LANGC.UTF-8
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
QTWEBENGINE_CHROMIUM_FLAGS--no-sandbox
S6_CMD_WAIT_FOR_SERVICES_MAXTIME0
TZAsia/Shanghai
UID1000
[#000] sha256:d17f077ada118cc762df373ff803592abf2dfa3ddafaa7381e364dd27a88fca7 - 0.76% (4.01 MB)
[#001] sha256:6b548d58b96557488b0d0283b6e46b2580e36095f67d42bdabb710d21dddfba7 - 0.0% (3.22 KB)
[#002] sha256:3212b80f97c45aa984b5d2550892ed620957d752f11e15e1c74e9f53d13ca2bd - 99.24% (526 MB)
ADD alpine-minirootfs-3.23.4-aarch64.tar.gz / # buildkit
2026-04-15 20:01:25 UTC (buildkit.dockerfile.v0)CMD ["/bin/sh"]
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG S6_VER=3.2.3.0
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG CALIBRE_WEB_VER=0.6.26
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG CALIBRE_VER=8.16.2
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG KEPUBIFY_VER=4.0.4
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ARG UNRAR_VERSION=7.2.2
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV UID=1000
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV GID=1000
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_AUTOADDBOOKS=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_CALIBRE_SERVER=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_CALIBRE_SERVER_OPDS=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_CALIBREDB_URLLIBRARYPATH=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_RESTART_AUTO=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_USER=
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_PASSWORD=
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_WEB_LANGUAGE=zh_CN
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_SERVER_PORT=8080
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_PORT=8083
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_ASCII_FILENAME=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_WEB_LANGUAGE=zh_Hans_CN
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV TZ=Asia/Shanghai
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBREDB_OTHER_OPTION=
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_GOOGLE_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_SCHOLAR_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_AMAZON_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_COMICVINE_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_DOUBAN_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV DISABLE_LUBIMYCZYTAC_SEARCH=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_CHOWN_LIBRARY=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV HOME=/home/calibre
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV QTWEBENGINE_CHROMIUM_FLAGS=--no-sandbox
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_DBPATH=/config/calibre-web
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_CONFIG_DIRECTORY=/config/calibre-server
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_LOCALHOST=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV CALIBRE_RECONNECT=true
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV ENABLE_FIX_COVER_COLOR=false
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
2026-05-13 02:54:26 UTC (buildkit.dockerfile.v0)COPY --chmod=755 root / # buildkit
2026-05-13 03:57:40 UTC (buildkit.dockerfile.v0)RUN |5 S6_VER=3.2.3.0 CALIBRE_WEB_VER=0.6.26 CALIBRE_VER=8.16.2 KEPUBIFY_VER=4.0.4 UNRAR_VERSION=7.2.2 /bin/sh -c apk upgrade && apk add --no-cache bash ca-certificates shadow tzdata python3 expect ttf-dejavu inotify-tools libldap sqlite xdg-utils font-wqy-zenhei poppler-data jq libstemmer imagemagick py3-gpep517 py3-wheel py3-pip py3-cryptography py3-gevent && pip3 install --no-cache-dir setuptools==82.0.1 --break-system-packages && apk add --no-cache font-liberation libjpeg-turbo-utils libwmf mtdev optipng poppler py3-beautifulsoup4 py3-css-parser py3-cssselect py3-dateutil py3-dnspython py3-feedparser py3-fonttools py3-html2text py3-html5lib py3-jeepney py3-lxml py3-markdown py3-mechanize py3-msgpack py3-netifaces py3-pillow py3-psutil py3-pycryptodome py3-pygments py3-pyqt6-webengine py3-regex py3-xxhash py3-zeroconf qt6-qtimageformats qt6-qtsvg qt6-qtwebengine qt6-qtbase-private-dev udisks2 podofo espeak-ng py3-chardet && apk add --no-cache --virtual builddep cmake curl ffmpeg-dev hunspell-dev hyphen-dev libmtp-dev libstemmer-dev libusb-dev py3-pyqt-builder py3-pyqt6-sip py3-qt6 py3-sip python3-dev qt6-qtbase-dev uchardet-dev xdg-utils podofo-dev espeak-ng-dev build-base rust cargo libffi-dev git openldap-dev libxml2-dev libxslt-dev libjpeg-turbo-dev libevent-dev file cython openssl-dev linux-headers && pip3 install --no-cache-dir apsw html5-parser --break-system-packages && mkdir /tmp/calibre && wget -P /tmp https://download.calibre-ebook.com/${CALIBRE_VER}/calibre-${CALIBRE_VER}.tar.xz && tar -xJf /tmp/calibre-${CALIBRE_VER}.tar.xz -C /tmp/calibre --strip-components=1 && cd /tmp/calibre && wget https://github.com/alpinelinux/aports/raw/refs/tags/v20251224/testing/calibre/0003-calibre-disable-piper.patch && patch -p1 < 0003-calibre-disable-piper.patch && echo -e "\nimport re\r#https://github.com/snomiao/calibre-utf8-path\r# 定义文件名转换函数\rdef re_filename(filename):\r if len(filename) > 80:\r filename = filename[0:80]\r# 替换为空\r return re.sub(r\"[\/\\\\\\\\\\:\*\?\\\"\<\>\|\\\\0]\", \"\", filename)\r" >> src/calibre/db/backend.py && sed -i s/"author = ascii_filename(author"/" author = ascii_filename(author"/g src/calibre/db/backend.py && sed -i s/"title = ascii_filename(title"/" title = ascii_filename(title"/g src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ ascii_filename_set = os.environ.get('CALIBRE_ASCII_FILENAME', 'true')" src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ if ascii_filename_set == 'false':" src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ author = re_filename(author)[:l]" src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ title = re_filename(title.lstrip())[:l].rstrip()" src/calibre/db/backend.py && sed -i "/author = ascii_filename(author/i\ else:" src/calibre/db/backend.py && python3 setup.py build && python3 setup.py iso639 && python3 setup.py iso3166 && python3 setup.py liberation_fonts --system-liberation_fonts --path-to-liberation_fonts /usr/share/fonts/liberation && python3 setup.py mathjax && python3 setup.py gui && python3 setup.py install --prefix=/usr/local && mkdir /tmp/unrar && wget -P /tmp https://www.rarlab.com/rar/unrarsrc-${UNRAR_VERSION}.tar.gz && tar xf /tmp/unrarsrc-${UNRAR_VERSION}.tar.gz -C /tmp/unrar --strip-components=1 && cd /tmp/unrar && sed -i 's|LDFLAGS=-pthread|LDFLAGS=-pthread -static|' makefile && sed -i 's|CXXFLAGS=-march=native |CXXFLAGS=|' makefile && make -j $(nproc) && install -v -m755 unrar /usr/bin && /usr/bin/unrar && if [ "$(uname -m)" = "x86_64" ];then s6_arch=x86_64;elif [ "$(uname -m)" = "aarch64" ];then s6_arch=aarch64;elif [ "$(uname -m)" = "armv7l" ];then s6_arch=arm; fi && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-noarch.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-${s6_arch}.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-${s6_arch}.tar.xz && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-symlinks-noarch.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-symlinks-arch.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz && wget -P /tmp https://github.com/janeczku/calibre-web/archive/refs/tags/${CALIBRE_WEB_VER}.tar.gz && mkdir -p /usr/local/calibre-web/app && tar xf /tmp/${CALIBRE_WEB_VER}.tar.gz -C /usr/local/calibre-web/app --strip-components=1 && sed -i '/^lxml/d' /usr/local/calibre-web/app/requirements.txt && pip3 install --no-cache-dir -r /usr/local/calibre-web/app/requirements.txt --break-system-packages && pip3 install --no-cache-dir selenium==4.36.0 --break-system-packages && pip3 install --no-cache-dir -r /usr/local/calibre-web/app/optional-requirements.txt --break-system-packages && if [ "$(uname -m)" = "x86_64" ];then kepubify_arch=64bit;elif [ "$(uname -m)" = "aarch64" ];then kepubify_arch=arm64;elif [ "$(uname -m)" = "armv7l" ];then kepubify_arch=arm; fi && wget https://github.com/pgaskin/kepubify/releases/download/v${KEPUBIFY_VER}/kepubify-linux-${kepubify_arch} -O /usr/local/bin/kepubify && chmod 755 /usr/local/bin/kepubify && mkdir -p /home/calibre && useradd -u 1000 -U -d /home/calibre -s /bin/false calibre && usermod -G users calibre && chown -R calibre:calibre /usr/local/calibre-web && apk del builddep && rm -rf /var/cache/apk/* /tmp/* /home/calibre/.c* # buildkit
2026-05-13 03:57:40 UTC (buildkit.dockerfile.v0)VOLUME [/library /config /autoaddbooks]
2026-05-13 03:57:40 UTC (buildkit.dockerfile.v0)EXPOSE [8080/tcp 8083/tcp]
2026-05-13 03:57:40 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/init"]
Please be careful as this will not just delete the reference but also the actual content!
For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.