FROM docker.io/library/golang:1.24-alpine as builder WORKDIR /src COPY go.* . RUN go mod download COPY . . RUN go build -o /src/build/subsyt . FROM docker.io/library/alpine:3.21 RUN apk update && apk upgrade && apk add --no-cache \ bash \ ffmpeg \ aria2 \ pipx \ attr \ mutagen \ ca-certificates \ python3 \ py3-requests \ py3-certifi \ py3-brotli \ py3-mutagen \ py3-pycryptodomex \ py3-secretstorage \ py3-websockets RUN mkdir -p /data/vids COPY <<-EOT /data/config.toml dry_run = false out_dir = "/data/vids" [provider] [provider.youtube] cmd = "/root/.local/bin/yt-dlp" opml_file = "/data/opml.xml" url = "https://www.youtube.com" quality = "res:1080" output_path_template = "s%(upload_date>%Y)s/%(channel)s.s%(upload_date>%Y)Se%(upload_date>%m%d)S.%(title)s.%(id)s-1080p.%(ext)s" throttle = 5 range = "1:5:1" after_date = "" cookies_file = "" po_token = "" EOT WORKDIR /app RUN pipx ensurepath RUN pipx install yt-dlp RUN pipx inject yt-dlp yt-dlp-get-pot RUN pipx inject yt-dlp bgutil-ytdlp-pot-provider RUN source /root/.bashrc COPY --from=builder /src/build/subsyt /app/subsyt CMD [ "/app/subsyt", "--config=/data/config.toml" ]