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
You have a lot going on there all at once that could be contributing to the whole thing failing.
If it were me, I would try to get caddy working independently of everything else first, since it was your original problem, then layer in the other containers one by one in case you've got configuration problems in them too.
Caddy by itself is super easy to verify with something like a
browse
directive pointed at an empty directory.Then add your tailscale container and configs, and check that you can still access the browse page from caddy.
Then add your Jellyfin container and adjust the Caddyfile to proxy to it.
I went through all this, and it seems Jellyfin was the problem. I added this into my yaml:
ports: - "8096"
And now I can access the server.......if I use port 32769....which I figured out by using
docker compose ps -a
. I also had restarted it once, and before the restart, I accessed it with 32768. Any idea on how to fix this? I don't even know what's causing it