diff --git a/.dockerignore b/.dockerignore
index f5079239501a3280f7f2a800a42c9160bb747502..658ccf7417b5dd43b55c7f972655e844552cd491 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -2,3 +2,4 @@
 !Pipfile*
 !poca.xml
 !crontab
+!entrypoint
diff --git a/Dockerfile b/Dockerfile
index eb18780723212f825d77f88ccab9fc2c69236235..38ee10e4c8fe8153c3b861fbc273a27b12e436cb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,6 +3,10 @@ FROM registry.shore.co.il/cron as supersonic
 
 FROM registry.hub.docker.com/library/python:3.6-alpine3.13
 COPY --from=supersonic /usr/local/bin/supersonic /usr/local/bin/
+# hadolint ignore=DL3018
+RUN apk add --update --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ \
+        gosu \
+    ;
 # hadolint ignore=DL3013
 RUN pip install --no-cache-dir pipenv
 WORKDIR /poquita
@@ -16,7 +20,8 @@ RUN apk add --update --no-cache --virtual .lxml-build build-base git libxslt-dev
 RUN mkdir --mode 777 db Podcasts
 COPY --chown=root:root crontab ./
 COPY --chown=root:root poca.xml ./
+COPY --chown=root:root entrypoint /usr/local/sbin/docker-entrypoint
 VOLUME db Podcasts
+ENTRYPOINT ["docker-entrypoint"]
 CMD [ "supersonic", "crontab" ]
-USER nobody
 HEALTHCHECK CMD pgrep supersonic
diff --git a/docker-compose.yml b/docker-compose.yml
index 30900b6ab2f7060b8906e6687c250bfa8c471294..97a545bbd6f4f768101bfb1469f76697dd550b0a 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,10 +5,7 @@ services:
     build:
       context: ./
     restart: on-failure
-    user: nimrod
     volumes:
-      - /etc/group:/etc/group:ro
-      - /etc/passwd:/etc/passwd:ro
       - /srv/library/nimrod/Podcasts:/poquita/Podcasts
       - poquita:/poquita/db
 
diff --git a/entrypoint b/entrypoint
new file mode 100755
index 0000000000000000000000000000000000000000..59b7d5db72077c87c237b418220cbed7bf582e7b
--- /dev/null
+++ b/entrypoint
@@ -0,0 +1,9 @@
+#!/bin/sh
+set -eu
+
+[ "$(id -u)" = "0" ] || { echo "Not running as root, continuing as the current user."; eval exec "$@"; }
+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; }
+uid="$(stat Podcasts -c '%u')"
+gid="$(stat Podcasts -c '%g')"
+eval exec gosu "$uid:$gid" "$@"