From f05f807ac08cd56fec1f92ee9c5ffccf87fa6ad7 Mon Sep 17 00:00:00 2001 From: "qodo-code-review[bot]" <151058649+qodo-code-review[bot]@users.noreply.github.com> Date: Thu, 30 Jul 2026 02:40:41 +0000 Subject: [PATCH 1/2] fix: Copy Decypharr Dockerfile during installation --- setup.ps1 | 10 ++++++++++ setup.sh | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/setup.ps1 b/setup.ps1 index 7857852..e3a200f 100644 --- a/setup.ps1 +++ b/setup.ps1 @@ -557,6 +557,16 @@ function Invoke-GenerateDockerCompose { Copy-Item -Path $SourceFile -Destination $ComposeFile -Force Write-LogInfo "Copied docker-compose.yml to: $ComposeFile" + $DockerfileSource = Join-Path $ScriptDir "Dockerfile.decypharr" + $DockerfileDestination = Join-Path $InstallDir "Dockerfile.decypharr" + if (-not (Test-Path $DockerfileSource)) { + Write-LogWarn "Source Dockerfile.decypharr not found at: $DockerfileSource" + Write-LogStep "Failed to set up Docker Compose." + return + } + Copy-Item -Path $DockerfileSource -Destination $DockerfileDestination -Force + Write-LogInfo "Copied Dockerfile.decypharr to: $DockerfileDestination" + $OverrideFile = Join-Path $InstallDir "docker-compose.override.yml" if (Test-Path $OverrideFile) { Remove-Item -Path $OverrideFile -Force } diff --git a/setup.sh b/setup.sh index 2260849..53e0647 100755 --- a/setup.sh +++ b/setup.sh @@ -1319,8 +1319,9 @@ ENV_EOF generate_docker_compose() { log_step "Setting up Docker Compose..." - # Copy static compose file from repo to install directory + # Copy static compose file and its local build context to install directory cp "${SCRIPT_DIR}/docker-compose.yml" "${COMPOSE_FILE}" + cp "${SCRIPT_DIR}/Dockerfile.decypharr" "${INSTALL_DIR}/Dockerfile.decypharr" # Ensure no ghost overrides remain from previous installations rm -f "${INSTALL_DIR}/docker-compose.override.yml" From 813bc9a898d9703a968c83b465cac2ed4d337479 Mon Sep 17 00:00:00 2001 From: "qodo-code-review[bot]" <151058649+qodo-code-review[bot]@users.noreply.github.com> Date: Thu, 30 Jul 2026 02:40:47 +0000 Subject: [PATCH 2/2] fix: Parameterize Decypharr runtime UID --- Dockerfile.decypharr | 10 ++++++---- docker-compose.yml | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Dockerfile.decypharr b/Dockerfile.decypharr index 947a8a9..879a6c6 100644 --- a/Dockerfile.decypharr +++ b/Dockerfile.decypharr @@ -2,8 +2,8 @@ # Dockerfile.decypharr # # Thin wrapper around the upstream Decypharr image that adds a /etc/passwd -# entry for UID 1000 ("appuser"). This is required because the container is -# run as UID 1000 (via `user: PUID:PGID` in docker-compose.yml) and +# entry for the runtime UID ("appuser"). This is required because the +# container runs as `PUID:PGID` (via docker-compose.yml) and # fusermount3 calls `id -un` to resolve the username before mounting the # FUSE filesystem. Without a matching passwd entry fusermount3 exits with: # @@ -15,9 +15,11 @@ ARG DECYPHARR_VERSION=v2.4 FROM ghcr.io/sirrobot01/decypharr:${DECYPHARR_VERSION} +ARG APP_UID=1000 + # adduser flags: -# -u 1000 match the PUID used at runtime +# -u APP_UID match the PUID used at runtime # -D no password (daemon account) # -H do not create a home directory # -s /bin/sh minimal shell (required by some FUSE helpers) -RUN adduser -u 1000 -D -H -s /bin/sh appuser +RUN adduser -u "${APP_UID}" -D -H -s /bin/sh appuser diff --git a/docker-compose.yml b/docker-compose.yml index 7f95050..2c127e3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -30,6 +30,7 @@ services: dockerfile: Dockerfile.decypharr args: DECYPHARR_VERSION: "v2.4" + APP_UID: "${PUID:-1000}" image: torbox-decypharr:v2.4 container_name: decypharr user: "${PUID:-1000}:${PGID:-1000}"