wernight / docker-plex-media-server

Dockerized Plex Media Server
https://registry.hub.docker.com/u/wernight/plex-media-server/
MIT License
128 stars 34 forks source link

Question: How to best add layer with plugin…? #16

Closed hedefalk closed 8 years ago

hedefalk commented 8 years ago

Hi,

This is just asking for some advice. I want to create a docker image that adds a plugin to this image. However, it seems the plugin directory naming isn't constant over versions. Like:

/usr/lib/plexmediaserver/Resources/Plug-ins-e0b7243

where the 8 chars after the last dash changes.

Would you just as part of the script in the Dockerfile do ls /usr/lib/plexmediaserver/Resources/Plug-ins-* and use the result? Or is there some cleaner way?

Thanks for a great image!

hedefalk commented 8 years ago

Oh, it seems the Plugins directory is named as the Plex version ending on the deb file:

https://downloads.plex.tv/plex-media-server/0.9.14.6.1620-e0b7243/plexmediaserver-ros6-binaries_0.9.14.6.1620-e0b7243_amd64.deb

->

/usr/lib/plexmediaserver/Resources/Plug-ins-e0b7243

hedefalk commented 8 years ago

SUB_ZERO_ZIP=find /usr/lib/plexmediaserver/Resources/ -name 'Plug-ins*'`/Sub-Zero.bundle.zip"`

JigSawFr commented 8 years ago

Great ! Where is your dockerfile ?

hedefalk commented 8 years ago

I actually just modified this Dockerfile. I should make it a small Dockerfile that inherits this one instead, but this was quick and dirty:

https://github.com/hedefalk/docker-plex-media-server/blob/master/Dockerfile

Diff:

https://github.com/hedefalk/docker-plex-media-server/commit/d8867a55eb9292900e8b6e264f7dc46a46137130

wernight commented 8 years ago

Pretty neat. For most users I believe they'd like to install plugins on their own and that would just go under config directory. It'd also be consistent with their configuration.

What's your use case to include it in the image itself?

JigSawFr commented 8 years ago

@hedefalk could be a great idea to build a docker file with plugins by passing env var to enable it. But i see you force a version of SubZero (1.3.23.459), that could be a problem.

@wernight yes in my server, i populate myself plugins on plex by config dir and git :)

hedefalk commented 8 years ago

@wernight Oh, I somehow didn't know I could put the plugin under config. I see you've written that on the readme now :)

I would probably just do that then actually.

Or I don't know. My use case is pretty much just that I want to have my whole wardrobe server pretty reproducible from source with as few steps as possible. In theory I would like, in the case of total hardware failure to just do:

I used to have lots of shell scripts and listings for setting up my environment but I'm trying to dockerize the shit out of everything.

But as config is on my "supposedly persistent and safe separate datastore under raid 1 and backups nas" anyways, I can just put the plugin there and consider it persistent data instead.

wernight commented 8 years ago

You can have different solutions for how you store you config (docker data-only container, docker volume, mounted file system, Kubernetes with cloud file system...). In all cases you'd want your config so as to limit work required in case of failure.

Once you've that config (with your plugins if you so wish), just run the image and voilà!