From e2606d5d4ece5ff65a388b8cfaeff6fc106776a5 Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Sat, 29 Mar 2025 17:37:30 -0500 Subject: [PATCH] chore: Reorganize and simplify docker related files - Consolidate docker-compose files into a single file - Remove unnecessary files - Moved docker-related scripts to the scripts directory --- .dockerignore | 2 +- .vscode/tasks.json | 46 +++++++--- Dockerfile | 2 +- docker-compose.yml | 68 ++++++++++++--- docker/.gitignore | 3 +- docker/debugging/certs/cert-passwords.txt | 2 - docker/debugging/docker-compose.yml | 85 ------------------- docker/scripts/{prod => }/cron.sh | 0 docker/scripts/{prod => }/entrypoint.sh | 0 docker/Debug.ps1 => scripts/Docker-Debug.ps1 | 4 +- .../Docker-Recyclarr.ps1 | 6 +- 11 files changed, 96 insertions(+), 122 deletions(-) delete mode 100644 docker/debugging/certs/cert-passwords.txt delete mode 100644 docker/debugging/docker-compose.yml rename docker/scripts/{prod => }/cron.sh (100%) rename docker/scripts/{prod => }/entrypoint.sh (100%) rename docker/Debug.ps1 => scripts/Docker-Debug.ps1 (66%) rename docker/Recyclarr.ps1 => scripts/Docker-Recyclarr.ps1 (54%) diff --git a/.dockerignore b/.dockerignore index 33e9235b..ec9736eb 100644 --- a/.dockerignore +++ b/.dockerignore @@ -22,5 +22,5 @@ Dockerfile* **/*.md # Ignore these directories inside the docker subdir -docker/config/ +docker/debugging/ docker/artifacts/ diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 8f85b55d..43f7aba6 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -3,29 +3,46 @@ "tasks": [ { "label": "build", - "command": "dotnet", "type": "process", + "command": "dotnet", "args": [ "build", - "${workspaceFolder}/src/Recyclarr.Cli/Recyclarr.Cli.csproj", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" + "-property:GenerateFullPaths=true", + "-consoleLoggerParameters:NoSummary", ], - "problemMatcher": "$msCompile" + "problemMatcher": { + "owner": "dotnet", + "fileLocation": "absolute", + "pattern": [ + { + "regexp": "\\s*(.+)\\((\\d+),(\\d+)\\):\\s+(error|warning)\\s+(\\w+):\\s+(.+)", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "code": 5, + "message": 6 + } + ] + }, + "group": { + "kind": "build", + "isDefault": true + }, }, { "label": "publish", - "command": "dotnet", "type": "process", + "command": "dotnet", "args": [ "publish", - "${workspaceFolder}/src/Recyclarr.Cli/Recyclarr.Cli.csproj", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary", + "src/Recyclarr.Cli/Recyclarr.Cli.csproj", + "-property:GenerateFullPaths=true", + "-consoleLoggerParameters:NoSummary", "-o", - "${workspaceFolder}/docker/artifacts/${config:recyclarr.runtime}" + "docker/artifacts/${config:recyclarr.runtime}", ], - "problemMatcher": "$msCompile" + "problemMatcher": "$msCompile", }, { "label": "test", @@ -33,13 +50,14 @@ "type": "process", "args": [ "test", - "${workspaceFolder}/src/Recyclarr.sln" + "-property:GenerateFullPaths=true", + "-consoleLoggerParameters:NoSummary", ], "problemMatcher": "$msCompile", "group": { "kind": "test", - "isDefault": true - } + "isDefault": true, + }, } ] } diff --git a/Dockerfile b/Dockerfile index bbd67032..3af9b625 100644 --- a/Dockerfile +++ b/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ mkdir -p /config && chown 1000:1000 /config; COPY --from=build /app /app/recyclarr/ -COPY --chmod=555 ./docker/scripts/prod/*.sh / +COPY --chmod=555 ./docker/scripts/*.sh / USER 1000:1000 VOLUME /config diff --git a/docker-compose.yml b/docker-compose.yml index 981500b5..f41d9371 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,26 +1,70 @@ name: recyclarr -networks: - recyclarr: - name: recyclarr_dev - external: true +volumes: + radarr_stable: + radarr_develop: + sonarr_stable: + sonarr_develop: services: - app: + recyclarr: image: ghcr.io/recyclarr/recyclarr:edge - user: $DOCKER_UID:$DOCKER_GID - container_name: recyclarr + user: ${DOCKER_UID:-1000}:${DOCKER_GID:-1000} + profiles: [recyclarr] read_only: true tmpfs: /tmp build: context: . # platforms: - # - linux/arm/v7 - # - linux/arm64 - # - linux/amd64 - networks: [recyclarr] + # - linux/arm/v7 + # - linux/arm64 + # - linux/amd64 volumes: - - ./docker/config:/config + - ./docker/debugging/recyclarr:/config environment: CRON_SCHEDULE: "* * * * *" TZ: America/Chicago + + radarr_develop: + image: ghcr.io/home-operations/radarr:rolling + ports: [7890:7878] + volumes: + - radarr_develop:/config + environment: + - TZ=America/Chicago + - RADARR__AUTH__APIKEY=testkey + + sonarr_develop: + image: ghcr.io/home-operations/sonarr:rolling + ports: [8990:8989] + volumes: + - sonarr_develop:/config + environment: + - TZ=America/Chicago + - SONARR__AUTH__APIKEY=testkey + + sqlite: + image: keinos/sqlite3 + profiles: [manual] + entrypoint: [sqlite3] + volumes: + - sonarr_develop:/sonarr/develop + - sonarr_stable:/sonarr/stable + - radarr_develop:/radarr/develop + - radarr_stable:/radarr/stable + + # http://localhost:8000 + apprise: + image: caronc/apprise + ports: [8000:8000] + init: true + tmpfs: + - /attach + - /plugin + volumes: + - ./docker/debugging/apprise:/config + environment: + - TZ=America/Chicago + - APPRISE_DEFAULT_THEM=dark + - APPRISE_STATEFUL_MODE=simple + - DEBUG=yes diff --git a/docker/.gitignore b/docker/.gitignore index a10d0948..76fff8f6 100644 --- a/docker/.gitignore +++ b/docker/.gitignore @@ -1,3 +1,2 @@ -/config/ /artifacts/ -/debugging/apprise/ +/debugging/ diff --git a/docker/debugging/certs/cert-passwords.txt b/docker/debugging/certs/cert-passwords.txt deleted file mode 100644 index df592d8b..00000000 --- a/docker/debugging/certs/cert-passwords.txt +++ /dev/null @@ -1,2 +0,0 @@ -File: self-signed-cert-for-radarr.pfx -Password: 1234 diff --git a/docker/debugging/docker-compose.yml b/docker/debugging/docker-compose.yml deleted file mode 100644 index 3c39ee8f..00000000 --- a/docker/debugging/docker-compose.yml +++ /dev/null @@ -1,85 +0,0 @@ -networks: - recyclarr: - name: recyclarr_dev - -volumes: - radarr_stable: - radarr_develop: - sonarr_stable: - sonarr_develop: - -services: - radarr_stable: - image: ghcr.io/onedr0p/radarr:rolling - container_name: radarr_stable - networks: [recyclarr] - ports: [7878:7878] - volumes: - - radarr_stable:/config - - ./certs:/certs:ro - environment: - - TZ=America/Chicago - - RADARR__AUTH__APIKEY=testkey - - radarr_develop: - image: ghcr.io/onedr0p/radarr-develop:rolling - container_name: radarr_develop - networks: [recyclarr] - ports: [7890:7878] - volumes: - - radarr_develop:/config - - ./certs:/certs:ro - environment: - - TZ=America/Chicago - - RADARR__AUTH__APIKEY=testkey - - sonarr_stable: - image: ghcr.io/onedr0p/sonarr:rolling - container_name: sonarr_stable - networks: [recyclarr] - ports: [8989:8989] - volumes: - - sonarr_stable:/config - environment: - - TZ=America/Chicago - - SONARR__AUTH__APIKEY=testkey - - sonarr_develop: - image: ghcr.io/onedr0p/sonarr-develop:rolling - container_name: sonarr_develop - networks: [recyclarr] - ports: [8990:8989] - volumes: - - sonarr_develop:/config - environment: - - TZ=America/Chicago - - SONARR__AUTH__APIKEY=testkey - - sqlite: - image: keinos/sqlite3 - profiles: [manual] - network_mode: none - entrypoint: [sqlite3] - volumes: - - sonarr_develop:/sonarr/develop - - sonarr_stable:/sonarr/stable - - radarr_develop:/radarr/develop - - radarr_stable:/radarr/stable - - # http://localhost:8000 - apprise: - image: caronc/apprise - container_name: apprise - networks: [recyclarr] - ports: [8000:8000] - init: true - tmpfs: - - /attach - - /plugin - volumes: - - ./apprise:/config - environment: - - TZ=America/Chicago - - APPRISE_DEFAULT_THEM=dark - - APPRISE_STATEFUL_MODE=simple - - DEBUG=yes diff --git a/docker/scripts/prod/cron.sh b/docker/scripts/cron.sh similarity index 100% rename from docker/scripts/prod/cron.sh rename to docker/scripts/cron.sh diff --git a/docker/scripts/prod/entrypoint.sh b/docker/scripts/entrypoint.sh similarity index 100% rename from docker/scripts/prod/entrypoint.sh rename to docker/scripts/entrypoint.sh diff --git a/docker/Debug.ps1 b/scripts/Docker-Debug.ps1 similarity index 66% rename from docker/Debug.ps1 rename to scripts/Docker-Debug.ps1 index e712f661..aede2721 100644 --- a/docker/Debug.ps1 +++ b/scripts/Docker-Debug.ps1 @@ -1,9 +1,9 @@ $ErrorActionPreference = "Stop" -$debuggingYaml = "$PSScriptRoot/debugging/docker-compose.yml" +$debuggingYaml = "$PSScriptRoot/../docker-compose.yml" # Start the corresponding radarr/sonarr docker containers for testing/debugging docker compose -f $debuggingYaml up -d --pull always if ($LASTEXITCODE -ne 0) { - throw "docker compose up failed" + throw "docker compose up failed (debug)" } diff --git a/docker/Recyclarr.ps1 b/scripts/Docker-Recyclarr.ps1 similarity index 54% rename from docker/Recyclarr.ps1 rename to scripts/Docker-Recyclarr.ps1 index 871c6190..8353c5e0 100644 --- a/docker/Recyclarr.ps1 +++ b/scripts/Docker-Recyclarr.ps1 @@ -3,9 +3,9 @@ $ErrorActionPreference = "Stop" $recyclarrYaml = "$PSScriptRoot/../docker-compose.yml" # Start the corresponding radarr/sonarr docker containers for testing/debugging -& $PSScriptRoot/Debug.ps1 +& $PSScriptRoot/Docker-Debug.ps1 -docker compose -f $recyclarrYaml run --rm --build app @args +docker compose -f $recyclarrYaml --profile recyclarr run --rm --build recyclarr @args if ($LASTEXITCODE -ne 0) { - throw "docker compose run failed" + throw "docker compose run failed (recyclarr)" }