Update Dockerfile
Browse files- Dockerfile +35 -44
Dockerfile
CHANGED
|
@@ -1,19 +1,19 @@
|
|
| 1 |
# ---------------------------------------------------------------------------
|
| 2 |
-
# "THE GOD MONOLITH" -
|
| 3 |
# ---------------------------------------------------------------------------
|
| 4 |
FROM python:3.11-bookworm
|
| 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
# Switch to root to install everything
|
| 7 |
USER root
|
| 8 |
|
| 9 |
-
#
|
| 10 |
-
#
|
| 11 |
-
# - build-essential: To compile AIOStreams/Python deps
|
| 12 |
-
# - supervisor: To run 4 apps at once
|
| 13 |
-
# - chromium/driver: For FlareSolverr
|
| 14 |
-
# - libicu/ssl: For Prowlarr
|
| 15 |
RUN apt-get update && apt-get install -y \
|
| 16 |
-
nginx \
|
| 17 |
build-essential \
|
| 18 |
python3-dev \
|
| 19 |
chromium \
|
|
@@ -29,41 +29,41 @@ RUN apt-get update && apt-get install -y \
|
|
| 29 |
xvfb \
|
| 30 |
&& rm -rf /var/lib/apt/lists/*
|
| 31 |
|
| 32 |
-
#
|
| 33 |
ENV CHROME_BIN=/usr/bin/chromium
|
| 34 |
ENV CHROMIUM_DRIVER=/usr/bin/chromedriver
|
| 35 |
ENV FLARESOLVERR_BROWSER_ARGS="--no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage --disable-gpu"
|
| 36 |
ENV PUID=1000
|
| 37 |
ENV PGID=1000
|
| 38 |
|
| 39 |
-
#
|
| 40 |
-
# APP 1: FLARESOLVERR (Anti-Cloudflare)
|
| 41 |
-
# ---------------------------------------------------------------------------
|
| 42 |
WORKDIR /app
|
| 43 |
RUN git clone https://github.com/FlareSolverr/FlareSolverr.git flaresolverr \
|
| 44 |
&& cd flaresolverr \
|
| 45 |
&& pip install --no-cache-dir -r requirements.txt
|
| 46 |
|
| 47 |
-
#
|
| 48 |
-
# APP 2: AIOSTREAMS (The Bridge)
|
| 49 |
-
# ---------------------------------------------------------------------------
|
| 50 |
WORKDIR /app
|
| 51 |
RUN git clone https://github.com/Viren070/AIOStreams.git aiostreams \
|
| 52 |
&& cd aiostreams \
|
| 53 |
&& pip install --no-cache-dir -r requirements.txt
|
| 54 |
|
| 55 |
-
#
|
| 56 |
-
# APP 3: PROWLARR (The Brain)
|
| 57 |
-
# ---------------------------------------------------------------------------
|
| 58 |
WORKDIR /app
|
| 59 |
RUN curl -L -o Prowlarr.tar.gz 'https://prowlarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64' \
|
| 60 |
&& tar -xvzf Prowlarr.tar.gz \
|
| 61 |
&& rm Prowlarr.tar.gz
|
| 62 |
|
| 63 |
-
#
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 67 |
RUN echo 'worker_processes 1;' > /etc/nginx/nginx.conf && \
|
| 68 |
echo 'events { worker_connections 1024; }' >> /etc/nginx/nginx.conf && \
|
| 69 |
echo 'http {' >> /etc/nginx/nginx.conf && \
|
|
@@ -92,27 +92,10 @@ RUN echo 'worker_processes 1;' > /etc/nginx/nginx.conf && \
|
|
| 92 |
echo ' }' >> /etc/nginx/nginx.conf && \
|
| 93 |
echo '}' >> /etc/nginx/nginx.conf
|
| 94 |
|
| 95 |
-
#
|
| 96 |
-
# PERMISSIONS & DIRECTORIES
|
| 97 |
-
# ---------------------------------------------------------------------------
|
| 98 |
-
RUN useradd -m -u 1000 user \
|
| 99 |
-
&& mkdir -p /data/prowlarr \
|
| 100 |
-
&& mkdir -p /var/log/supervisor \
|
| 101 |
-
&& mkdir -p /var/lib/nginx/body \
|
| 102 |
-
&& mkdir -p /var/lib/nginx/fastcgi \
|
| 103 |
-
&& chown -R user:user /app \
|
| 104 |
-
&& chown -R user:user /data \
|
| 105 |
-
&& chown -R user:user /var/log/supervisor \
|
| 106 |
-
&& chown -R user:user /var/lib/nginx \
|
| 107 |
-
&& chown -R user:user /var/log/nginx \
|
| 108 |
-
&& chown -R user:user /etc/nginx/nginx.conf
|
| 109 |
-
|
| 110 |
-
# ---------------------------------------------------------------------------
|
| 111 |
-
# SUPERVISOR CONFIG (The Boss)
|
| 112 |
-
# ---------------------------------------------------------------------------
|
| 113 |
RUN echo '[supervisord]' > /etc/supervisor/conf.d/supervisord.conf && \
|
| 114 |
echo 'nodaemon=true' >> /etc/supervisor/conf.d/supervisord.conf && \
|
| 115 |
-
echo 'user=
|
| 116 |
echo 'logfile=/var/log/supervisor/supervisord.log' >> /etc/supervisor/conf.d/supervisord.conf && \
|
| 117 |
echo 'pidfile=/var/run/supervisord.pid' >> /etc/supervisor/conf.d/supervisord.conf && \
|
| 118 |
echo '' >> /etc/supervisor/conf.d/supervisord.conf && \
|
|
@@ -135,9 +118,17 @@ RUN echo '[supervisord]' > /etc/supervisor/conf.d/supervisord.conf && \
|
|
| 135 |
echo 'command=/app/Prowlarr/Prowlarr -nobrowser -data=/data/prowlarr /urlBase=/prowlarr' >> /etc/supervisor/conf.d/supervisord.conf && \
|
| 136 |
echo 'directory=/app/Prowlarr' >> /etc/supervisor/conf.d/supervisord.conf
|
| 137 |
|
| 138 |
-
#
|
| 139 |
-
|
| 140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 141 |
USER user
|
| 142 |
EXPOSE 7860
|
| 143 |
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
|
|
|
| 1 |
# ---------------------------------------------------------------------------
|
| 2 |
+
# "THE GOD MONOLITH" - V2 (Fixed & Unlocked)
|
| 3 |
# ---------------------------------------------------------------------------
|
| 4 |
FROM python:3.11-bookworm
|
| 5 |
|
| 6 |
+
# 1. UNLOCK PIP (Critical for Debian 12)
|
| 7 |
+
# This prevents the "Externally Managed Environment" error
|
| 8 |
+
ENV PIP_BREAK_SYSTEM_PACKAGES=1
|
| 9 |
+
|
| 10 |
# Switch to root to install everything
|
| 11 |
USER root
|
| 12 |
|
| 13 |
+
# 2. Install System Dependencies
|
| 14 |
+
# Added 'nginx-full' to ensure all directories are created
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
RUN apt-get update && apt-get install -y \
|
| 16 |
+
nginx-full \
|
| 17 |
build-essential \
|
| 18 |
python3-dev \
|
| 19 |
chromium \
|
|
|
|
| 29 |
xvfb \
|
| 30 |
&& rm -rf /var/lib/apt/lists/*
|
| 31 |
|
| 32 |
+
# 3. Configure Environment
|
| 33 |
ENV CHROME_BIN=/usr/bin/chromium
|
| 34 |
ENV CHROMIUM_DRIVER=/usr/bin/chromedriver
|
| 35 |
ENV FLARESOLVERR_BROWSER_ARGS="--no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage --disable-gpu"
|
| 36 |
ENV PUID=1000
|
| 37 |
ENV PGID=1000
|
| 38 |
|
| 39 |
+
# 4. Install FLARESOLVERR
|
|
|
|
|
|
|
| 40 |
WORKDIR /app
|
| 41 |
RUN git clone https://github.com/FlareSolverr/FlareSolverr.git flaresolverr \
|
| 42 |
&& cd flaresolverr \
|
| 43 |
&& pip install --no-cache-dir -r requirements.txt
|
| 44 |
|
| 45 |
+
# 5. Install AIOSTREAMS
|
|
|
|
|
|
|
| 46 |
WORKDIR /app
|
| 47 |
RUN git clone https://github.com/Viren070/AIOStreams.git aiostreams \
|
| 48 |
&& cd aiostreams \
|
| 49 |
&& pip install --no-cache-dir -r requirements.txt
|
| 50 |
|
| 51 |
+
# 6. Install PROWLARR
|
|
|
|
|
|
|
| 52 |
WORKDIR /app
|
| 53 |
RUN curl -L -o Prowlarr.tar.gz 'https://prowlarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64' \
|
| 54 |
&& tar -xvzf Prowlarr.tar.gz \
|
| 55 |
&& rm Prowlarr.tar.gz
|
| 56 |
|
| 57 |
+
# 7. MANUALLY CREATE ALL CONFIG DIRECTORIES (The Fix)
|
| 58 |
+
RUN mkdir -p /etc/supervisor/conf.d \
|
| 59 |
+
&& mkdir -p /var/log/supervisor \
|
| 60 |
+
&& mkdir -p /var/lib/nginx/body \
|
| 61 |
+
&& mkdir -p /var/lib/nginx/fastcgi \
|
| 62 |
+
&& mkdir -p /data/prowlarr
|
| 63 |
+
|
| 64 |
+
# 8. CONFIGURE NGINX (Traffic Cop)
|
| 65 |
+
# Routes / -> AIOStreams (3000)
|
| 66 |
+
# Routes /prowlarr -> Prowlarr (9696)
|
| 67 |
RUN echo 'worker_processes 1;' > /etc/nginx/nginx.conf && \
|
| 68 |
echo 'events { worker_connections 1024; }' >> /etc/nginx/nginx.conf && \
|
| 69 |
echo 'http {' >> /etc/nginx/nginx.conf && \
|
|
|
|
| 92 |
echo ' }' >> /etc/nginx/nginx.conf && \
|
| 93 |
echo '}' >> /etc/nginx/nginx.conf
|
| 94 |
|
| 95 |
+
# 9. CONFIGURE SUPERVISOR (The Boss)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
RUN echo '[supervisord]' > /etc/supervisor/conf.d/supervisord.conf && \
|
| 97 |
echo 'nodaemon=true' >> /etc/supervisor/conf.d/supervisord.conf && \
|
| 98 |
+
echo 'user=root' >> /etc/supervisor/conf.d/supervisord.conf && \
|
| 99 |
echo 'logfile=/var/log/supervisor/supervisord.log' >> /etc/supervisor/conf.d/supervisord.conf && \
|
| 100 |
echo 'pidfile=/var/run/supervisord.pid' >> /etc/supervisor/conf.d/supervisord.conf && \
|
| 101 |
echo '' >> /etc/supervisor/conf.d/supervisord.conf && \
|
|
|
|
| 118 |
echo 'command=/app/Prowlarr/Prowlarr -nobrowser -data=/data/prowlarr /urlBase=/prowlarr' >> /etc/supervisor/conf.d/supervisord.conf && \
|
| 119 |
echo 'directory=/app/Prowlarr' >> /etc/supervisor/conf.d/supervisord.conf
|
| 120 |
|
| 121 |
+
# 10. SETUP PERMISSIONS (Critical)
|
| 122 |
+
RUN useradd -m -u 1000 user \
|
| 123 |
+
&& chown -R user:user /app \
|
| 124 |
+
&& chown -R user:user /data \
|
| 125 |
+
&& chown -R user:user /var/log/supervisor \
|
| 126 |
+
&& chown -R user:user /var/lib/nginx \
|
| 127 |
+
&& chown -R user:user /var/log/nginx \
|
| 128 |
+
&& chown -R user:user /etc/nginx/nginx.conf \
|
| 129 |
+
&& chown -R user:user /etc/supervisor/conf.d
|
| 130 |
+
|
| 131 |
+
# 11. LAUNCH
|
| 132 |
USER user
|
| 133 |
EXPOSE 7860
|
| 134 |
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|