2025-08-17 10:43:04 -06:00
|
|
|
FROM python:3.11-bookworm
|
2021-11-01 16:42:52 -06:00
|
|
|
ENV DOCKER=true
|
|
|
|
|
WORKDIR /opt/wrolpi
|
|
|
|
|
|
|
|
|
|
# Update dependencies for the services install.
|
2026-04-11 20:09:30 -06:00
|
|
|
RUN apt-get update && apt-get install -y ffmpeg catdoc sysstat aria2 iputils-ping unrar-free unzip \
|
|
|
|
|
build-essential libsqlite3-dev zlib1g-dev git
|
|
|
|
|
|
|
|
|
|
# Install tippecanoe (for map search index building via tippecanoe-decode).
|
|
|
|
|
RUN git clone --depth 1 --branch 2.79.0 https://github.com/felt/tippecanoe.git /tmp/tippecanoe \
|
|
|
|
|
&& cd /tmp/tippecanoe && make -j$(nproc) && make install \
|
|
|
|
|
&& rm -rf /tmp/tippecanoe \
|
|
|
|
|
&& tippecanoe-decode --help 2>&1 | head -1
|
2022-03-08 13:26:03 -07:00
|
|
|
RUN ffmpeg -version
|
2026-02-20 14:37:58 -07:00
|
|
|
|
|
|
|
|
# Install Deno runtime for yt-dlp
|
|
|
|
|
RUN ARCH=$(uname -m) && \
|
|
|
|
|
if [ "$ARCH" = "aarch64" ]; then DENO_ARCH="aarch64-unknown-linux-gnu"; \
|
|
|
|
|
elif [ "$ARCH" = "x86_64" ]; then DENO_ARCH="x86_64-unknown-linux-gnu"; \
|
|
|
|
|
else echo "Unsupported architecture: $ARCH" && exit 1; fi && \
|
|
|
|
|
curl -fsSL "https://github.com/denoland/deno/releases/download/v2.2.4/deno-${DENO_ARCH}.zip" -o /tmp/deno.zip \
|
|
|
|
|
&& unzip /tmp/deno.zip -d /usr/local/bin/ \
|
|
|
|
|
&& chmod +x /usr/local/bin/deno \
|
|
|
|
|
&& rm /tmp/deno.zip \
|
|
|
|
|
&& deno --version
|
|
|
|
|
|
2024-05-18 19:13:41 -06:00
|
|
|
# yt-dlp needs cache directory
|
|
|
|
|
RUN mkdir /.cache && chown -R 1000:1000 /.cache
|
2021-11-01 16:42:52 -06:00
|
|
|
|
2024-04-17 11:25:26 -06:00
|
|
|
# Install dependencies.
|
|
|
|
|
COPY requirements.txt /opt/wrolpi/requirements.txt
|
|
|
|
|
RUN pip3 install -r /opt/wrolpi/requirements.txt
|
|
|
|
|
|
|
|
|
|
# Install WROLPi.
|
2021-11-01 16:42:52 -06:00
|
|
|
COPY main.py /opt/wrolpi/
|
|
|
|
|
COPY wrolpi /opt/wrolpi/wrolpi
|
|
|
|
|
COPY modules /opt/wrolpi/modules
|
|
|
|
|
|
2025-12-19 16:42:36 -07:00
|
|
|
ENTRYPOINT [ "python3", "/opt/wrolpi/main.py"]
|
2025-12-16 19:20:04 -07:00
|
|
|
# Log level controlled by LOG_LEVEL env var or wrolpi.yaml config (default: info)
|
|
|
|
|
CMD ["api", "--host", "0.0.0.0"]
|