wip bumping version solved it. well...
This commit is contained in:
parent
87d0c755be
commit
fdc40da561
@ -3,16 +3,15 @@
|
||||
"title": "slskd",
|
||||
"author": "Morgan",
|
||||
"description": "file://DESCRIPTION.md",
|
||||
"changelog": "file://CHANGELOG.md",
|
||||
"tagline": "A modern client-server application for the Soulseek file-sharing network.",
|
||||
"version": "1.0.3",
|
||||
"manifestVersion": 2,
|
||||
"minBoxVersion": "8.3.1",
|
||||
"healthCheckPath": "/health",
|
||||
"httpPort": 5030,
|
||||
"addons": {
|
||||
"localstorage": {}
|
||||
},
|
||||
"manifestVersion": 2,
|
||||
"minBoxVersion": "8.3.1",
|
||||
"website": "https://zoemp.be/slskd",
|
||||
"contactEmail": "morgan@zoemp.be",
|
||||
"icon": "file://logo.png",
|
||||
|
@ -1,4 +1,4 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
# 1) Télécharger et unzipper slskd
|
||||
FROM debian:bookworm-slim AS downloader
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
@ -16,22 +16,23 @@ RUN TAG=$(curl -fsSL https://api.github.com/repos/slskd/slskd/releases/latest \
|
||||
&& curl -fsSL "$URL" -o slskd.zip \
|
||||
&& unzip slskd.zip
|
||||
|
||||
# 2) Image finale
|
||||
FROM debian:bookworm-slim
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
tini jq ca-certificates gosu libstdc++6 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# créer les dossiers et l'utilisateur cloudron
|
||||
# Créer les répertoires code, data et cache
|
||||
RUN mkdir -p /app/code /app/data /run/slskd/cache \
|
||||
&& useradd -u 1000 -m -d /app/data -s /bin/bash cloudron \
|
||||
&& chmod -R 777 /app/data /run/slskd/cache
|
||||
&& chown -R cloudron:cloudron /app/data /run/slskd/cache
|
||||
|
||||
# copier binaire + UI
|
||||
# Copier binaire + UI statique
|
||||
COPY --from=downloader /tmp/slskd /app/code/slskd
|
||||
COPY --from=downloader /tmp/wwwroot /app/code/wwwroot
|
||||
|
||||
# config exemple & script de démarrage
|
||||
# Copier config example et script de démarrage
|
||||
COPY slskd.yml.example /app/code/slskd.yml.example
|
||||
COPY start.sh /app/code/start.sh
|
||||
|
||||
|
14
build.sh
14
build.sh
@ -3,24 +3,22 @@ set -xeuo pipefail
|
||||
|
||||
VERSION=$(<VERSION)
|
||||
IMAGE="dr.zoemp.be/slskd:${VERSION}"
|
||||
LOCATION="slskd" # sous-domaine ⇒ slskd.ton-domaine.be
|
||||
LOCATION="slskd"
|
||||
FQDN="${LOCATION}.${CLOUDRON_APP_DOMAIN:-zoemp.be}"
|
||||
|
||||
# 1) build + push
|
||||
# 1) Build & push
|
||||
docker build --platform linux/amd64 -t "${IMAGE}" -f Dockerfile.cloudron .
|
||||
docker push "${IMAGE}"
|
||||
|
||||
# 2) install ou update sur Cloudron
|
||||
# 2) Install ou update sur Cloudron
|
||||
if cloudron status --app "${FQDN}" &>/dev/null; then
|
||||
echo "🔄 Mise à jour de ${FQDN} → ${IMAGE}"
|
||||
cloudron update \
|
||||
--image "${IMAGE}" \
|
||||
--app "${FQDN}"
|
||||
cloudron update --app "${FQDN}" --image "${IMAGE}"
|
||||
else
|
||||
echo "🚀 Installation de l’app sur ${FQDN}"
|
||||
echo "🚀 Installation de org.zoemp.slskd sur ${FQDN}"
|
||||
cloudron install \
|
||||
--image "${IMAGE}" \
|
||||
--location "${LOCATION}" \
|
||||
"${CLOUDRON_MANIFEST_ID:-slskd.zoemp.be}"
|
||||
org.zoemp.slskd
|
||||
fi
|
||||
|
||||
|
18
dev.sh
18
dev.sh
@ -2,15 +2,21 @@
|
||||
set -xeuo pipefail
|
||||
|
||||
VERSION=$(<VERSION)
|
||||
IMAGE=dr.zoemp.be/slskd:${VERSION}
|
||||
IMAGE="dr.zoemp.be/slskd:${VERSION}"
|
||||
|
||||
# build
|
||||
docker build --platform linux/amd64 -t ${IMAGE} -f Dockerfile.cloudron .
|
||||
# Préparation du dossier data (config + cache)
|
||||
mkdir -p data/cache
|
||||
chmod 770 data data/cache
|
||||
|
||||
# run localement en mappant ./data
|
||||
# Build
|
||||
docker build --platform linux/amd64 -t "${IMAGE}" -f Dockerfile.cloudron .
|
||||
|
||||
# Run en mode dev
|
||||
docker run --rm -it \
|
||||
--platform linux/amd64 \
|
||||
-v "$(pwd)/data:/app/data" \
|
||||
-v "$(pwd)/data":/app/data \
|
||||
-v "$(pwd)/data/cache":/run/slskd/cache \
|
||||
-p 8080:5030 \
|
||||
${IMAGE}
|
||||
-e DOTNET_BUNDLE_EXTRACT_BASE_DIR=/run/slskd/cache \
|
||||
"${IMAGE}"
|
||||
|
||||
|
16
start.sh
16
start.sh
@ -1,16 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
set -xeuo pipefail
|
||||
|
||||
# 0) on s'assure que /app/data et /run/slskd/cache sont écrits par cloudron
|
||||
chmod -R 777 /app/data /run/slskd/cache
|
||||
chown -R cloudron:cloudron /app/data
|
||||
chmod -R 755 /app/data
|
||||
ls -ld /app/data
|
||||
stat /app/data
|
||||
|
||||
# 1) répertoire d'extraction pour dotnet
|
||||
# 1) Préparer le cache d'extraction .NET
|
||||
export DOTNET_BUNDLE_EXTRACT_BASE_DIR=/run/slskd/cache
|
||||
mkdir -p "${DOTNET_BUNDLE_EXTRACT_BASE_DIR}"
|
||||
chown cloudron:cloudron "${DOTNET_BUNDLE_EXTRACT_BASE_DIR}"
|
||||
|
||||
# 2) invariant globalization
|
||||
# 2) Mode globalization invariant
|
||||
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true
|
||||
|
||||
# 3) si la conf n'existe pas, on la copie depuis l'exemple
|
||||
# 3) Copier la config si nécessaire
|
||||
if [ ! -f /app/data/slskd.yml ]; then
|
||||
echo "ℹ️ Copie de la config d'exemple dans /app/data/slskd.yml"
|
||||
cp /app/code/slskd.yml.example /app/data/slskd.yml
|
||||
@ -19,7 +23,7 @@ else
|
||||
echo "ℹ️ Utilisation de /app/data/slskd.yml existant"
|
||||
fi
|
||||
|
||||
# 4) on lance en user cloudron
|
||||
# 4) Lancer slskd sous l'utilisateur cloudron
|
||||
exec gosu cloudron /app/code/slskd \
|
||||
--config /app/data/slskd.yml \
|
||||
--http-port "${SLSKD_HTTP_PORT:-5030}" \
|
||||
|
Loading…
x
Reference in New Issue
Block a user