void0028 commited on
Commit
945dffd
·
verified ·
1 Parent(s): ea0ce35

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +53 -29
Dockerfile CHANGED
@@ -1,48 +1,72 @@
1
- FROM flaresolverr/flaresolverr:latest
 
 
 
2
 
3
- # Switch to root to install Prowlarr and dependencies
 
 
 
 
 
 
4
  USER root
5
 
6
- # 1. Install Dependencies
7
- # libicu and libssl are required for Prowlarr to run
 
 
 
8
  RUN apt-get update && apt-get install -y \
9
  curl \
 
 
 
 
 
 
10
  libicu-dev \
11
  libssl-dev \
12
  libsqlite3-0 \
 
13
  socat \
 
14
  && rm -rf /var/lib/apt/lists/*
15
 
16
- # 2. Force Working Directory to Root
17
- # This ensures Prowlarr extracts to /Prowlarr and not /app/Prowlarr
18
- WORKDIR /
 
 
 
 
 
 
 
 
 
19
 
20
- # 3. Install Prowlarr
 
21
  RUN curl -L -o Prowlarr.tar.gz 'https://prowlarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64' \
22
- && tar -xvzf Prowlarr.tar.gz \
23
  && rm Prowlarr.tar.gz
24
 
25
- # 4. Setup Permissions
26
- # Only chown the specific subfolder in /data, not the root /data
27
- RUN mkdir -p /data/prowlarr
28
- RUN chown -R 1000:1000 /Prowlarr
29
- RUN chown -R 1000:1000 /data/prowlarr
30
-
31
- # 5. Copy Start Script
32
- COPY --chown=1000:1000 start.sh /start.sh
33
- RUN chmod +x /start.sh
34
-
35
- # 6. Switch back to the default user
36
- USER 1000
37
-
38
- # 7. Environment Variables
39
- ENV LOG_LEVEL=info
40
- ENV LOG_HTML=false
41
- ENV HOST=0.0.0.0
42
- ENV PORT=8191
43
 
44
- EXPOSE 7860
 
45
 
46
- CMD ["/start.sh"]
 
 
47
 
 
 
 
48
 
 
 
 
1
+ # ---------------------------------------------------------------------------
2
+ # "THE MONOLITH" - Debian Bookworm Base (Heavy & Stable)
3
+ # ---------------------------------------------------------------------------
4
+ FROM python:3.11-bookworm
5
 
6
+ # 1. Set Environment to avoid interactive prompts
7
+ ENV DEBIAN_FRONTEND=noninteractive
8
+ ENV PUID=1000
9
+ ENV PGID=1000
10
+ ENV HOME=/home/user
11
+
12
+ # 2. Switch to Root to install THE WORLD
13
  USER root
14
 
15
+ # 3. Install System Dependencies (The "Kitchen Sink" List)
16
+ # - supervisor: To manage processes reliably (no more crash loops)
17
+ # - chromium/driver: For FlareSolverr
18
+ # - libicu/ssl: For Prowlarr (.NET)
19
+ # - socat: For port bridging
20
  RUN apt-get update && apt-get install -y \
21
  curl \
22
+ wget \
23
+ gnupg \
24
+ ca-certificates \
25
+ supervisor \
26
+ chromium \
27
+ chromium-driver \
28
  libicu-dev \
29
  libssl-dev \
30
  libsqlite3-0 \
31
+ net-tools \
32
  socat \
33
+ git \
34
  && rm -rf /var/lib/apt/lists/*
35
 
36
+ # 4. Create User & Directories (Strict Permissions)
37
+ RUN useradd -m -u 1000 user
38
+ RUN mkdir -p /app/prowlarr \
39
+ && mkdir -p /app/flaresolverr \
40
+ && mkdir -p /data/prowlarr \
41
+ && mkdir -p /var/log/supervisor
42
+
43
+ # 5. Install FlareSolverr (From Source)
44
+ WORKDIR /app/flaresolverr
45
+ RUN git clone https://github.com/FlareSolverr/FlareSolverr.git . \
46
+ && pip install --no-cache-dir -r requirements.txt \
47
+ && pip install supervisor
48
 
49
+ # 6. Install Prowlarr (Official Release)
50
+ WORKDIR /app/prowlarr
51
  RUN curl -L -o Prowlarr.tar.gz 'https://prowlarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64' \
52
+ && tar -xvzf Prowlarr.tar.gz --strip-components=1 \
53
  && rm Prowlarr.tar.gz
54
 
55
+ # 7. Permission Fix (Give 'user' ownership of EVERYTHING)
56
+ RUN chown -R user:user /app \
57
+ && chown -R user:user /data \
58
+ && chown -R user:user /var/log/supervisor
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
 
60
+ # 8. Copy Configuration
61
+ COPY --chown=user:user supervisord.conf /etc/supervisor/conf.d/supervisord.conf
62
 
63
+ # 9. Switch to User
64
+ USER user
65
+ WORKDIR /app
66
 
67
+ # 10. Expose Ports
68
+ # 7860 (Public HF), 9696 (Prowlarr), 8191 (FlareSolverr)
69
+ EXPOSE 7860 9696 8191
70
 
71
+ # 11. Start Supervisor (The Boss)
72
+ CMD ["supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]