diff --git a/.dockerignore b/.dockerignore index f3ba537..922e159 100644 --- a/.dockerignore +++ b/.dockerignore @@ -37,4 +37,4 @@ server/**/.vs server/RdtClient.Web/wwwroot/ build/ -publish/ \ No newline at end of file +publish/data diff --git a/.gitignore b/.gitignore index fb34e33..5abc6f4 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ publish/ node_modules/ RealDebridClient.zip server/RdtClient.Web/appsettings.Development.json +data diff --git a/Dockerfile b/Dockerfile index b8476a4..9d7ac81 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,7 +36,7 @@ RUN \ if [ "$TARGETPLATFORM" = "linux/arm/v7" ] ; then \ echo "**** Building $TARGETPLATFORM arm v7 version" && \ dotnet restore -r linux-arm RdtClient.sln && dotnet publish -r linux-arm -c Release -o out ; \ - elif [ "$TARGETPLATFORM" = "linux/arm/v8"] ; then \ + elif [ "$TARGETPLATFORM" = "linux/arm/v8" ] ; then \ echo "**** Building $TARGETPLATFORM arm v8 version" && \ dotnet restore -r linux-arm64 RdtClient.sln && dotnet publish -r linux-arm64 -c Release -o out ; \ else \ @@ -45,7 +45,7 @@ RUN \ fi # Stage 3 - Build runtime image -FROM ghcr.io/linuxserver/baseimage-ubuntu:focal +FROM ghcr.io/linuxserver/baseimage-ubuntu:bionic ARG TARGETPLATFORM ENV TARGETPLATFORM=${TARGETPLATFORM:-linux/amd64} ARG BUILDPLATFORM @@ -68,7 +68,7 @@ RUN \ apt-get update -y -qq && \ echo "**** Install pre-reqs ****" && \ apt-get install -y -qq wget dos2unix && \ - apt-get install -y libc6 libgcc1 libgssapi-krb5-2 libssl1.1 libstdc++6 zlib1g libicu66 && \ + apt-get install -y libc6 libgcc1 libgssapi-krb5-2 libssl1.1 libstdc++6 zlib1g libicu60 && \ echo "**** Installing dotnet ****" && \ wget -q https://dot.net/v1/dotnet-install.sh && \ chmod +x ./dotnet-install.sh && \ diff --git a/docker-build-dev.ps1 b/docker-build-dev.ps1 new file mode 100755 index 0000000..a184ece --- /dev/null +++ b/docker-build-dev.ps1 @@ -0,0 +1,29 @@ +#!/usr/bin/env pwsh + +param( + [string]$TempPath="c:/Temp/RtdClient", + [switch]$AutoAttach, + [switch]$IgnoreBuildCache, + [string]$BuildProgress="auto" +) + +[string] $downloadPath = Join-Path -Path $TempPath -ChildPath "downloads" +[string] $dbPath = Join-Path -Path $TempPath -ChildPath "db" + +Write-Host "Stopping Container (if already running)" +docker stop rdtclientdev + +Write-Host "removing Container (if exists)" +docker rm rdtclientdev + +Write-Host "Building Container" +$dockerArgs = @( "build", "--force-rm", "--tag", "rdtclientdev", "--progress=$BuildProgress", "." ) +if ($IgnoreBuildCache.IsPresent) { $dockerArgs += @("--no-cace" ) } +& docker $dockerArgs + +Write-Host "Starting Container" +docker run --cap-add=NET_ADMIN -d -v $downloadPath -v $dbPath --log-driver json-file --log-opt max-size=10m -p 6500:6500 --name rdtclientdev rdtclientdev + +if ($AutoAttach.IsPresent) { + docker exec -it rdtclientdev /bin/bash +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 29e641d..7987cf4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,18 @@ version: '3.3' + services: rdtclient: image: rogerfar/rdtclient - volumes: - - ./data/downloads:/data/downloads - - ./data/db:/data/db container_name: rdtclient + build: + context: . + dockerfile: Dockerfile + environment: + - PUID=1001 + - PGID=1001 + volumes: + - ${PWD}/data/downloads:/data/downloads + - ${PWD}/data/db:/data/db restart: always logging: driver: json-file diff --git a/root/etc/s6-overlay/s6-rc.d/init-rdt-client/dependencies.d/legacy-services b/root/etc/s6-overlay/s6-rc.d/init-rdt-client/dependencies.d/legacy-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/cont-init.d/30-config b/root/etc/s6-overlay/s6-rc.d/init-rdt-client/run similarity index 100% rename from root/etc/cont-init.d/30-config rename to root/etc/s6-overlay/s6-rc.d/init-rdt-client/run diff --git a/root/etc/s6-overlay/s6-rc.d/init-rdt-client/type b/root/etc/s6-overlay/s6-rc.d/init-rdt-client/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-rdt-client/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-rdt-client/up b/root/etc/s6-overlay/s6-rc.d/init-rdt-client/up new file mode 100644 index 0000000..4c37b14 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-rdt-client/up @@ -0,0 +1 @@ +etc/s6-overlay/s6-rc.d/init-rdt-client/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/svc-rdt-client/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-rdt-client/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/services.d/rdtclient/run b/root/etc/s6-overlay/s6-rc.d/svc-rdt-client/run old mode 100755 new mode 100644 similarity index 100% rename from root/etc/services.d/rdtclient/run rename to root/etc/s6-overlay/s6-rc.d/svc-rdt-client/run diff --git a/root/etc/s6-overlay/s6-rc.d/svc-rdt-client/type b/root/etc/s6-overlay/s6-rc.d/svc-rdt-client/type new file mode 100644 index 0000000..1780f9f --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-rdt-client/type @@ -0,0 +1 @@ +longrun \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-rdt-client b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-rdt-client new file mode 100644 index 0000000..e69de29