From f5407b299706aba8ea31571c51958ca8833c9a91 Mon Sep 17 00:00:00 2001 From: ed Date: Tue, 15 Aug 2023 15:07:33 +0000 Subject: [PATCH] docker: persist autogenerated seeds, disable certgen, and mention how to run the containers with selinux enabled * assumes that a /cfg docker volume is provided --- copyparty/authsrv.py | 8 +++++++- scripts/docker/Dockerfile.ac | 5 +++-- scripts/docker/Dockerfile.dj | 5 +++-- scripts/docker/Dockerfile.im | 5 +++-- scripts/docker/Dockerfile.iv | 5 +++-- scripts/docker/Dockerfile.min | 5 +++-- scripts/docker/Dockerfile.min.pip | 5 +++-- scripts/docker/README.md | 1 + 8 files changed, 26 insertions(+), 13 deletions(-) diff --git a/copyparty/authsrv.py b/copyparty/authsrv.py index 6673f235..d463f6e2 100644 --- a/copyparty/authsrv.py +++ b/copyparty/authsrv.py @@ -2020,13 +2020,19 @@ def expand_config_file(ret: list[str], fp: str, ipath: str) -> None: if os.path.isdir(fp): names = os.listdir(fp) - ret.append("#\033[36m cfg files in {} => {}\033[0m".format(fp, names)) + crumb = "#\033[36m cfg files in {} => {}\033[0m".format(fp, names) + ret.append(crumb) for fn in sorted(names): fp2 = os.path.join(fp, fn) if not fp2.endswith(".conf") or fp2 in ipath: continue expand_config_file(ret, fp2, ipath) + + if ret[-1] == crumb: + # no config files below; remove breadcrumb + ret.pop() + return ipath += " -> " + fp diff --git a/scripts/docker/Dockerfile.ac b/scripts/docker/Dockerfile.ac index 18cb5e7c..6eb901d2 100644 --- a/scripts/docker/Dockerfile.ac +++ b/scripts/docker/Dockerfile.ac @@ -5,7 +5,8 @@ LABEL org.opencontainers.image.url="https://github.com/9001/copyparty" \ org.opencontainers.image.licenses="MIT" \ org.opencontainers.image.title="copyparty-ac" \ org.opencontainers.image.description="copyparty with Pillow and FFmpeg (image/audio/video thumbnails, audio transcoding, media tags)" -ENV PYTHONPYCACHEPREFIX=/tmp/pyc +ENV PYTHONPYCACHEPREFIX=/tmp/pyc \ + XDG_CONFIG_HOME=/cfg RUN apk --no-cache add !pyc \ wget \ @@ -19,4 +20,4 @@ RUN apk --no-cache add !pyc \ COPY i/dist/copyparty-sfx.py ./ WORKDIR /w EXPOSE 3923 -ENTRYPOINT ["python3", "/z/copyparty-sfx.py", "-c", "/z/initcfg"] +ENTRYPOINT ["python3", "/z/copyparty-sfx.py", "--no-crt", "-c", "/z/initcfg"] diff --git a/scripts/docker/Dockerfile.dj b/scripts/docker/Dockerfile.dj index b958cda5..2ccf19f0 100644 --- a/scripts/docker/Dockerfile.dj +++ b/scripts/docker/Dockerfile.dj @@ -5,7 +5,8 @@ LABEL org.opencontainers.image.url="https://github.com/9001/copyparty" \ org.opencontainers.image.licenses="MIT" \ org.opencontainers.image.title="copyparty-dj" \ org.opencontainers.image.description="copyparty with all optional dependencies, including musical key / bpm detection" -ENV PYTHONPYCACHEPREFIX=/tmp/pyc +ENV PYTHONPYCACHEPREFIX=/tmp/pyc \ + XDG_CONFIG_HOME=/cfg COPY i/bin/mtag/install-deps.sh ./ COPY i/bin/mtag/audio-bpm.py /mtag/ @@ -35,4 +36,4 @@ RUN apk add -U !pyc \ COPY i/dist/copyparty-sfx.py ./ WORKDIR /w EXPOSE 3923 -ENTRYPOINT ["python3", "/z/copyparty-sfx.py", "-c", "/z/initcfg"] +ENTRYPOINT ["python3", "/z/copyparty-sfx.py", "--no-crt", "-c", "/z/initcfg"] diff --git a/scripts/docker/Dockerfile.im b/scripts/docker/Dockerfile.im index 3e24a409..0acb8f6c 100644 --- a/scripts/docker/Dockerfile.im +++ b/scripts/docker/Dockerfile.im @@ -5,7 +5,8 @@ LABEL org.opencontainers.image.url="https://github.com/9001/copyparty" \ org.opencontainers.image.licenses="MIT" \ org.opencontainers.image.title="copyparty-im" \ org.opencontainers.image.description="copyparty with Pillow and Mutagen (image thumbnails, media tags)" -ENV PYTHONPYCACHEPREFIX=/tmp/pyc +ENV PYTHONPYCACHEPREFIX=/tmp/pyc \ + XDG_CONFIG_HOME=/cfg RUN apk --no-cache add !pyc \ wget \ @@ -18,4 +19,4 @@ RUN apk --no-cache add !pyc \ COPY i/dist/copyparty-sfx.py ./ WORKDIR /w EXPOSE 3923 -ENTRYPOINT ["python3", "/z/copyparty-sfx.py", "-c", "/z/initcfg"] +ENTRYPOINT ["python3", "/z/copyparty-sfx.py", "--no-crt", "-c", "/z/initcfg"] diff --git a/scripts/docker/Dockerfile.iv b/scripts/docker/Dockerfile.iv index fb5eca0c..7ed03014 100644 --- a/scripts/docker/Dockerfile.iv +++ b/scripts/docker/Dockerfile.iv @@ -5,7 +5,8 @@ LABEL org.opencontainers.image.url="https://github.com/9001/copyparty" \ org.opencontainers.image.licenses="MIT" \ org.opencontainers.image.title="copyparty-iv" \ org.opencontainers.image.description="copyparty with Pillow, FFmpeg, libvips (image/audio/video thumbnails, audio transcoding, media tags)" -ENV PYTHONPYCACHEPREFIX=/tmp/pyc +ENV PYTHONPYCACHEPREFIX=/tmp/pyc \ + XDG_CONFIG_HOME=/cfg RUN apk add -U !pyc \ wget \ @@ -25,4 +26,4 @@ RUN apk add -U !pyc \ COPY i/dist/copyparty-sfx.py ./ WORKDIR /w EXPOSE 3923 -ENTRYPOINT ["python3", "/z/copyparty-sfx.py", "-c", "/z/initcfg"] +ENTRYPOINT ["python3", "/z/copyparty-sfx.py", "--no-crt", "-c", "/z/initcfg"] diff --git a/scripts/docker/Dockerfile.min b/scripts/docker/Dockerfile.min index 7d1b9029..c4bec7b0 100644 --- a/scripts/docker/Dockerfile.min +++ b/scripts/docker/Dockerfile.min @@ -5,7 +5,8 @@ LABEL org.opencontainers.image.url="https://github.com/9001/copyparty" \ org.opencontainers.image.licenses="MIT" \ org.opencontainers.image.title="copyparty-min" \ org.opencontainers.image.description="just copyparty, no thumbnails / media tags / audio transcoding" -ENV PYTHONPYCACHEPREFIX=/tmp/pyc +ENV PYTHONPYCACHEPREFIX=/tmp/pyc \ + XDG_CONFIG_HOME=/cfg RUN apk --no-cache add !pyc \ python3 \ @@ -17,4 +18,4 @@ RUN apk --no-cache add !pyc \ COPY i/dist/copyparty-sfx.py ./ WORKDIR /w EXPOSE 3923 -ENTRYPOINT ["python3", "/z/copyparty-sfx.py", "-c", "/z/initcfg"] +ENTRYPOINT ["python3", "/z/copyparty-sfx.py", "--no-crt", "--no-thumb", "-c", "/z/initcfg"] diff --git a/scripts/docker/Dockerfile.min.pip b/scripts/docker/Dockerfile.min.pip index 0364d049..738c3827 100644 --- a/scripts/docker/Dockerfile.min.pip +++ b/scripts/docker/Dockerfile.min.pip @@ -5,7 +5,8 @@ LABEL org.opencontainers.image.url="https://github.com/9001/copyparty" \ org.opencontainers.image.licenses="MIT" \ org.opencontainers.image.title="copyparty-min-pip" \ org.opencontainers.image.description="just copyparty, no thumbnails, no media tags, no audio transcoding" -ENV PYTHONPYCACHEPREFIX=/tmp/pyc +ENV PYTHONPYCACHEPREFIX=/tmp/pyc \ + XDG_CONFIG_HOME=/cfg RUN apk --no-cache add python3 py3-pip !pyc \ && python3 -m pip install copyparty \ @@ -17,4 +18,4 @@ RUN apk --no-cache add python3 py3-pip !pyc \ WORKDIR /w EXPOSE 3923 -ENTRYPOINT ["python3", "-m", "copyparty", "-c", "/z/initcfg"] +ENTRYPOINT ["python3", "-m", "copyparty", "--no-crt", "--no-thumb", "-c", "/z/initcfg"] diff --git a/scripts/docker/README.md b/scripts/docker/README.md index ee0df0da..d7993e85 100644 --- a/scripts/docker/README.md +++ b/scripts/docker/README.md @@ -15,6 +15,7 @@ docker run --rm -it -u 1000 -p 3923:3923 -v /mnt/nas:/w -v $PWD/cfgdir:/cfg copy * `copyparty/ac` is the recommended [image edition](#editions) * you can download the image from github instead by replacing `copyparty/ac` with `ghcr.io/9001/copyparty-ac` * if you are using rootless podman, remove `-u 1000` +* if you have selinux, append `:z` to all `-v` args (for example `-v /mnt/nas:/w:z`) i'm unfamiliar with docker-compose and alternatives so let me know if this section could be better 🙏