Hardened Sonarr image — no s6-overlay, non-root, read-only root filesystem.
USER 1000:1000 default, overridable)readOnlyRootFilesystem compatibleamd64, arm64| Path | Purpose | Required |
|---|---|---|
/config | Persistent data — database, config.xml, logs | Always |
/tmp | Writable temporary files | Only with readOnlyRootFilesystem: true |
services:
sonarr:
image: ppaslan/sonarr:latest
restart: unless-stopped
user: "1000:1000"
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
ports:
- "8989:8989"
volumes:
- ./config:/config
- /media:/media
tmpfs:
- /tmp:size=128m
spec:
securityContext:
runAsUser: 1000
runAsGroup: 1000
runAsNonRoot: true
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
seccompProfile:
type: RuntimeDefault
containers:
- name: sonarr
image: ppaslan/sonarr:latest
securityContext:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
capabilities:
drop: [ALL]
volumeMounts:
- name: config
mountPath: /config
- name: tmp
mountPath: /tmp
- name: media
mountPath: /media
volumes:
- name: config
persistentVolumeClaim:
claimName: sonarr-config
- name: tmp
emptyDir:
medium: Memory
sizeLimit: 128Mi
- name: media
persistentVolumeClaim:
claimName: media
docker buildx build \
--platform linux/amd64,linux/arm64 \
--build-arg SONARR_VERSION=4.0.17.2952 \
-t ppaslan/sonarr:4.0.17.2952 \
images/sonarr/
Content type
Image
Digest
sha256:8e0ff6c2e…
Size
100.3 MB
Last updated
2 days ago
docker pull ppaslan/sonarr