Docker images for Roon [Please Note: Using Dockers and VMs isn't supported by Roon]

Hi everyone, RonCH’s work on this Synology thread and my frustrations with getting RoonServer to run on my server inspired me to throw together some new Dockerfiles and images for Roon:

RoonServer:
Source: GitHub - mikedickey/RoonServer: Dockerfile for RoonServer on Linux x86_64
Image: Docker

docker run --name RoonServer --net=host -d -v /home/roon:/var/roon -v /home/music:/music mikedickey/roonserver

RoonBridge:
Source: GitHub - mikedickey/RoonBridge: Dockerfile for RoonBridge on Linux x86_64
Image: Docker

docker run --name RoonBridge --net=host -d -v /home/roon:/var/roon mikedickey/roonbridge

I haven’t tested the RoonBridge images yet other than making sure they run (I’m using all ARM devices), but seems like they should work. I’m now running my RoonServer image on my server at home, so I’ll iterate and let you know how it goes. Please feel free to create pull requests for any changes.

Roon folks: you’re welcome to take these over if you are interested in owning/maintaining them.

7 Likes

Thanks for posting these! I actually found your image + Dockerfile through Docker Hub and got it working right away. I wrote up my AirSonos + RoonServer setup on my GitHub page

Once I move it into Docker-Compose to handle the build+upgrades, I’ll be sure to send you a PR.

Glad to hear it! I’m actually quite thrilled by how well Roon seems to run inside a container. Look forward to your PRs.

For those who try this, please state the size of the library and make any comments on how responsive the system is.

With FreeNAS 10.0 moving to the Docker system, it’s nice to see someone has even already created a RoonServer (and RoonBridge) Docker! (Im)Patiently waiting an actual release of FreeNAS 10 (scheduled for February 20, 2017) so I no longer have to use an ancient laptop to host the server software. Thank you, @mikedickey in advance. I too stumbled across your build on the Docker Hub and then came here to see if I could find more info.

Once installed, it will be a library of roughly 650GB (almost exclusively AIFF files with a smattering of DSF) on a FreeNAS machine of ~16TB, 64GB RAM, E3 1220. Cannot yet comment on responsiveness for obvious reasons.

1 Like

I’m giving 2 cores of an Athlon x3 440 to my VM hosting the container. All files are on a file server using HDDs. My Roon database is on SSD storage and response is pretty much instant. Streaming to multiple devices including DSD & resampling is no problem.

We’re working out problems with Roon 1.3 in containers though, so watch this space for an update

I’m back up and running on 194, and it’s pulling in my collection that I bind mounted into the container now.

I didn’t change the Dockerfile for 194, I just rebuilt with no cache to pull in the Ubuntu updates & latest Roon version all at once:

docker build --no-cache -t roonserver:1.3-194 .
docker tag roonserver:1.3-194 roonserver:latest
docker run --name RoonServer --net=host -d -v roondata:/var/roon -v /mnt/musicarchive:/music roonserver

Here’s the thread where we were discussing issues with libraries in local Linux paths. I think it’s all resolved now.

I just pushed new images/tags for 1.3 to Docker Hub.

Does anyone from Roon want to make this official? I’d be glad to help develop & test, hopefully @mikedickey would be too.

Docker Hub has an autobuild feature that can trigger off a source repo change, as well as dependent images This would help automatically pick up updated Linux images as well as new version of Roon. I know your code isn’t open source, but you could have the Dockerfile and install script on GitHub with a version-specific URL in the script. Update the script when you release a new version and Docker Hub does the rest for you.

Another approach would be to just build these images as part of your normal build & test workflow and publish the ones that pass :slight_smile: It would be a great way for experienced users to try early builds because we can roll back to an older version in a few seconds if needed.

Docker Hub’s build machines set some very low (u)limit’s which cause the Roon installer’s pre-flight checks to fail. Hence, I’ve been building and pushing manually for every release. Not sure if those limit checks are necessary or maybe they could be bypassed with a command-line flag? In any case it would be trivial to automate this process, and I’d be happy to help. I’ve been running RoonServer in a docker container for several months now and it works great.

Hmm, I guess I didn’t notice those preflight checks. Since I’ve been building rather than pulling, they’re run on the same machine that I ultimately run Roon on. I’m wondering if that could lead to suboptimal settings. For example, I have both an AMD and an Intel server running which support different levels of SSE, AVX, and so on.

The ulimits will be set by your host machine where you run the container, not by the image. So it shouldn’t impact anything other than Docker Hub being unable to build the image on its own.

Mike Have you run onto issues updating the image to 234? I tried recreating an updated image, but my container now just restarts repeatedly. I’ll analyze the log tomorrow and hopefully locate the issue.

Thanks,

Jonathan

I just rebuilt and pushed 1.3-234. Seems to be working ok for me so far.

Oh okay, well thanks for the sanity check. At least I know it should work correctly and it’s not the update that caused an issue.
I’m not sure what I did differently, but it was entirely too late at night to be messing with so I probably goofed. I’ll figure it out when I get some
free time.

Thanks,

Jonathan

Hey Mike, I accidentally updated roonserver and now I can’t connect. Could you update the image? I’ve been unable to play music and haven’t had the time to figure out why my image stopped working.

1.3-242 is up on ducker hub. I rebuilt and pushed it a few days ago.

Oh, thanks for that. I only issued a docker restart command. I forgot I needed to stop and rm ROON container and use the docker run command to recreate it. Thanks for jogging my memory. I appreciate the reply.

-Jon

I so hate bothering you, Mike, can you update docker to 1.3 version 247? I lost Tidal service. My roommates are looking at me funny and they want me to play stuff! Thanks In Advance! :slight_smile:

@mikedickey the way you’ve done your Dockerfile is very standard and reasonable.

I’m wondering if a better way for Roon would be to have the installer download and run at first run of the container, then you’re never have to “update” it on the hub.