Hey everyone, I'm currently trying to run Jellyfin with Tailscale using docker compose and a reverse proxy through Caddy. I'm using this guide to do this. After configuring the yaml, I tried to start things up and Tailscale and Jellyfin started, but Caddy wouldn't start and it gave the following error:
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/root/Jellyfin/jellyfin-tailscale/caddy/conf/Caddyfile" to rootfs at "/etc/caddy/Caddyfile": create mountpoint for /etc/caddy/Caddyfile mount: cannot create subdirectories in "/var/lib/docker/overlay2/325e35ec5a4c8d8bac5d7576e2deeb4b8365af027486e232ad78b458708b639b/merged/etc/caddy/Caddyfile": not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
I checked the Caddy Image information here, and modified the yaml to mount the Caddyfile directory instead.
New code looks like this ~/Jellyfin/jellyfin-tailscale/caddy/conf:/etc/caddy
Now when I restart the services with Docker Compose, all three start, however Caddy (and therefore Jellyfin) won't run, they continually try restarting. By looking at it with docker logs caddy, I see that it throws out this error over and over:
Error: reading config from file: read /etc/caddy/Caddyfile: is a directory
I've inspected both the Caddyfile in /etc/caddy
and in ~/Jellyfin/jellyfin-tailscale/caddy/conf
using file Caddyfile
, and both say they're Caddyfile: ASCII text
.
What am I missing and how do I fix it?
EDIT: Forgot to put in links
Do not use /root inside or outside of a container for plain file access. That's insane.
This is a permissions issue, so set the mount point to something else that's world readable by default. Event /tmp isn't a horrible idea.
You also don't mention if Podman is the underlying runtime managing the container, but if it is, you need get familiar with mounting when things like SElinux are enabled on this host.
Thanks for the info, I'll try using a different mount point. Which directory would be best?
Yeah I agree, I don't know where that came from in the initial error. That line in the yaml file had the path as
~/Jellyfin/jellyfin-tailscale/caddy/conf/Caddyfile
so it was in my user directoryI'm not using Podman
Anything that already exists and won't have pwd permissions issues is fine. Generally whatever your direct user has access to, so you don't have to add things to the base image.