diff --git a/daemon/Dockerfile b/daemon/Dockerfile index f862956f60cf6f52e66580c02847e96d1314e054..3cca629db9703b28dfff7c773a380b16f5069aa6 100644 --- a/daemon/Dockerfile +++ b/daemon/Dockerfile @@ -6,15 +6,14 @@ RUN apk add --update --no-cache --repository http://dl-cdn.alpinelinux.org/alpin apk add --update --no-cache \ transmission-daemon \ && \ - install -d -m 555 /var/lib/transmission && \ - mkdir -m 777 /run/transmission && \ - mkdir /etc/transmission -COPY --chown=root:root entrypoint / -COPY settings.json /etc/transmission/ + mkdir -m 777 /run/transmission +COPY --chown=root:root entrypoint /usr/local/sbin/docker-entrypoint +COPY --chown=root:root settings.json /etc/transmission/ VOLUME /var/lib/transmission WORKDIR /var/lib/transmission ENV HOME /var/lib/transmission +ENV TRANSMISSION_HOME /var/lib/transmission EXPOSE 9091 51413/tcp 51413/udp -ENTRYPOINT [ "/entrypoint" ] +ENTRYPOINT [ "docker-entrypoint" ] CMD [ "transmission-daemon", "--foreground" ] HEALTHCHECK CMD wget --spider http://localhost:9091/transmission || exit 1 diff --git a/daemon/entrypoint b/daemon/entrypoint index b0cc9c1d08d6c81ea4606c126e55daf0be678239..de78f347b81b61c78a029784d38728e9f0780333 100755 --- a/daemon/entrypoint +++ b/daemon/entrypoint @@ -1,8 +1,17 @@ #!/bin/sh set -eux -mkdir -p /var/lib/transmission/downloads -install -d -o transmission -g transmission -m 750 /var/lib/transmission/.config/transmission-daemon/ -install -o transmission -g transmission -m 640 /etc/transmission/settings.json /var/lib/transmission/.config/transmission-daemon/settings.json +command -v stat > /dev/null || { echo "Can't find stat, exiting."; exit 1; } +command -v gosu > /dev/null || { echo "Can't find gosu, exiting."; exit 1; } -eval exec gosu "transmission:transmission" "$@" +ln -sf /etc/transmission/settings.json ./settings.json + +if [ -d ./Downloads ] && [ "$(id -u)" -eq '0' ] +then + uid="$(stat ./Downloads -c '%u')" + gid="$(stat ./Downloads -c '%g')" + chown "$uid:$gid" ./ + eval exec gosu "$uid:$gid" "$@" +else + eval exec "$@" +fi diff --git a/docker-compose.yml b/docker-compose.yml index 19e44c0d1e246f1ddc793c1227e9256265880acd..e5bf334937e3d2452bc0a270e5d31e9578d827bb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,8 +9,6 @@ services: - 51413:51413/tcp - 51413:51413/udp volumes: - - /etc/group:/etc/group:ro - - /etc/passwd:/etc/passwd:ro - daemon:/var/lib/transmission - /srv/library:/var/lib/transmission/downloads restart: always