|
1 | 1 | # syntax=docker/dockerfile:1 |
2 | 2 |
|
3 | 3 | FROM ghcr.io/linuxserver/unrar:latest AS unrar |
4 | | -FROM ghcr.io/linuxserver/baseimage-ubuntu:jammy |
| 4 | +FROM ghcr.io/linuxserver/baseimage-ubuntu:noble |
5 | 5 |
|
6 | 6 | # Set the default shell for the following RUN instructions to bash instead of sh |
7 | 7 | SHELL ["/bin/bash", "-c"] |
@@ -37,45 +37,52 @@ LABEL maintainer="CrocodileStick" |
37 | 37 | COPY --chown=abc:abc . /app/calibre-web-automated/ |
38 | 38 | # STEP 1 - Install Required Packages |
39 | 39 | RUN \ |
40 | | - # STEP 1.1 - Install required apt packages |
41 | | - echo "**** install build packages ****" && \ |
| 40 | + # STEP 1.1 - Add deadsnakes PPA for Python 3.13 and install required apt packages |
| 41 | + echo "**** add deadsnakes PPA for Python 3.13 ****" && \ |
| 42 | + apt-get update && \ |
| 43 | + apt-get install -y --no-install-recommends software-properties-common && \ |
| 44 | + add-apt-repository ppa:deadsnakes/ppa && \ |
42 | 45 | apt-get update && \ |
| 46 | + echo "**** install build packages ****" && \ |
43 | 47 | apt-get install -y --no-install-recommends \ |
44 | 48 | build-essential \ |
45 | 49 | libldap2-dev \ |
46 | 50 | libsasl2-dev \ |
47 | 51 | gettext \ |
48 | | - python3-dev && \ |
| 52 | + python3.13-dev \ |
| 53 | + python3.13-venv && \ |
49 | 54 | echo "**** install runtime packages ****" && \ |
50 | 55 | apt-get install -y --no-install-recommends \ |
51 | 56 | imagemagick \ |
52 | 57 | ghostscript \ |
53 | | - libldap-2.5-0 \ |
| 58 | + libldap2 \ |
54 | 59 | libmagic1 \ |
55 | 60 | libsasl2-2 \ |
56 | 61 | libxi6 \ |
57 | 62 | libxslt1.1 \ |
58 | 63 | xdg-utils \ |
59 | 64 | inotify-tools \ |
60 | | - python3 \ |
61 | | - python3-pip \ |
| 65 | + python3.13 \ |
62 | 66 | nano \ |
63 | 67 | sqlite3 \ |
64 | 68 | zip \ |
65 | | - lsof \ |
66 | | - python3-venv && \ |
| 69 | + lsof && \ |
| 70 | + # Create python3 symlink to point to python3.13 |
| 71 | + ln -sf /usr/bin/python3.13 /usr/bin/python3 && \ |
| 72 | + # Install pip for Python 3.13 |
| 73 | + curl -sS https://bootstrap.pypa.io/get-pip.py | python3.13 && \ |
67 | 74 | # STEP 1.2 - Set up a python virtual environment and install pip and wheel packages |
68 | 75 | cd /app/calibre-web-automated && \ |
69 | | - python3 -m venv /lsiopy && \ |
70 | | - pip install -U --no-cache-dir \ |
| 76 | + python3.13 -m venv /lsiopy && \ |
| 77 | + /lsiopy/bin/pip install -U --no-cache-dir \ |
71 | 78 | pip \ |
72 | 79 | wheel && \ |
73 | 80 | # STEP 1.3 - Installing the required python packages listed in 'requirements.txt' and 'optional-requirements.txt' |
74 | 81 | # HOWEVER, they are not pulled from PyPi directly, they are pulled from linuxserver's Ubuntu Wheel Index |
75 | 82 | # This is essentially a repository of precompiled some of the most popular packages with C/C++ source code |
76 | 83 | # This provides the install maximum compatibility with multiple different architectures including: x86_64, armv71 and aarch64 |
77 | 84 | # You can read more about python wheels here: https://realpython.com/python-wheels/ |
78 | | - pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ -r \ |
| 85 | + /lsiopy/bin/pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ -r \ |
79 | 86 | requirements.txt -r optional-requirements.txt && \ |
80 | 87 | # STEP 2 - Move contents of /app/calibre-web-automated/root to / and delete the /app/calibre-web-automated/root directory |
81 | 88 | cp -R /app/calibre-web-automated/root/* / && \ |
@@ -175,7 +182,8 @@ RUN \ |
175 | 182 | libldap2-dev \ |
176 | 183 | libsasl2-dev \ |
177 | 184 | gettext \ |
178 | | - python3-dev && \ |
| 185 | + python3.13-dev \ |
| 186 | + software-properties-common && \ |
179 | 187 | apt-get -y autoremove && \ |
180 | 188 | rm -rf \ |
181 | 189 | /tmp/* \ |
|
0 commit comments