INTERACT FORUM

More => Old Versions => JRiver Media Center 27 for Linux => Topic started by: max096 on September 09, 2020, 04:46:51 pm

Title: Docker Image for MC27
Post by: max096 on September 09, 2020, 04:46:51 pm
I' ve updated my Docker image to now also build images for MediaCenter 27.

More information about the image can be found in the readme on gitlab or dockerhub

- gitlab: https://gitlab.com/shiomax/jrivermc-docker
- dockerhub: https://hub.docker.com/r/shiomax/jrivermc27

This time around no problems with licensing either.

If you are upgrading from an older MediaCenter version (24, 25 or 26) remember to make a library backup before attempting to upgrade. Ideally, also backup the directory you linked to /config after having stopped or removed the container you are currently running. Major JRiver version changes will not retain anything you will need to restore from a library backup and reactivate your license.
Title: Re: Docker Image for MC27
Post by: JimH on September 09, 2020, 04:52:38 pm
Thank you!
Title: Re: Docker Image for MC27
Post by: Scobie on September 09, 2020, 05:25:22 pm
Brilliant thank you Max.
Title: Re: Docker Image for MC27
Post by: Scobie on September 10, 2020, 05:55:03 pm
Hi Max, all running really well but the integrated Browser is not functioning?

Thanks

Scobie
Title: Re: Docker Image for MC27
Post by: max096 on September 11, 2020, 06:57:18 am
Hi Max, all running really well but the integrated Browser is not functioning?

Thanks

Scobie

You're right the browser does not work. I'll look into it later today probably. Don't have time for it right now.
Title: Re: Docker Image for MC27
Post by: Scobie on September 11, 2020, 07:39:59 am
Ok great, no rush...appreciate your work on this.
Title: Re: Docker Image for MC27
Post by: max096 on September 11, 2020, 03:38:53 pm
Just had to install this for the browser to work.

Code: [Select]
libgbm1/stable 18.3.6-2+deb10u1 amd64
  generic buffer management API -- runtime

It wasn't required for mc26, but it is now.
Title: Re: Docker Image for MC27
Post by: bob on September 11, 2020, 04:35:33 pm
Just had to install this for the browser to work.

Code: [Select]
libgbm1/stable 18.3.6-2+deb10u1 amd64
  generic buffer management API -- runtime

It wasn't required for mc26, but it is now.
Thanks, I'll add that to the dependencies.
Title: Re: Docker Image for MC27
Post by: Scobie on September 13, 2020, 10:19:19 pm
Adding that library has done the trick. Thanks everyone.
Title: Re: Docker Image for MC27
Post by: max096 on September 14, 2020, 12:33:22 pm
Adding that library has done the trick. Thanks everyone.

I installed it in the image btw, if that wasnīt clear. ^^
Title: Re: Docker Image for MC27
Post by: Scobie on September 14, 2020, 05:56:44 pm
Yes it was thanks Max, but didnt have the time nor inclination to spit out a new container yesterday so just added the library.

Cheers
Title: Re: Docker Image for MC27
Post by: HaWi on September 15, 2020, 08:32:58 am
Thank you Max! I'll have a go. I am assuming I have to remove the MC26 container before creating the MC27, right?

Title: Re: Docker Image for MC27
Post by: max096 on September 15, 2020, 04:52:34 pm
Thank you Max! I'll have a go. I am assuming I have to remove the MC26 container before creating the MC27, right?

Yes.
Title: Re: Docker Image for MC27
Post by: HaWi on September 16, 2020, 12:31:19 pm
I managed to get the MC27 container up and running. I cannot thank you enough. It is absolutely brilliant.
Title: Re: Docker Image for MC27
Post by: HaWi on September 17, 2020, 01:27:01 pm
I am trying to move to using docker-compose but the noob I am, I have no clue where the docker-compose.yml file should go.
I have created a docker-compose container and mapped a /config directory (/docker/compose/config). Do I put the .yml in there? If so, what if I want to manage different containers with docker-compose?
Sorry about my utter confusion and much gratitude for any help
cheers,
Hans
Title: Re: Docker Image for MC27
Post by: max096 on September 17, 2020, 01:51:07 pm
I am trying to move to using docker-compose but the noob I am, I have no clue where the docker-compose.yml file should go.
I have created a docker-compose container and mapped a /config directory (/docker/compose/config). Do I put the .yml in there? If so, what if I want to manage different containers with docker-compose?
Sorry about my utter confusion and much gratitude for any help
cheers,
Hans

Personally, I have a docker directory in my home directory on the VM I run docker images on for actual use and in there I make folders depending on "use". I put the yml and whatever goes with the container like the config directory inside that folder. When you run docker-compose up without any arguments it searches for a file called exactly docker-compose.yml in the directory you are in currently. Im sure you could also specify what yml it is supposed to use. Personally, I don't really do that.

If you make multiple containers it depends on what those do. If they are independent and have nothing to do with each other you create multiple such yml files. But one cool thing about compose (although I believe largly irrelevant here). It puts every container you define as "service" in the same yml file into the same virtual docker network. And it also creates an alias/dns name inside that network for every service you create. So. Let's assume you created a jriver instance in there and you named it myjrivermc, now if you put a second container/service in there it could connect to jriver using http://myjrivermc:52199 and it will get resolved to the internal ip inside the docker network (this only works if you are in the docker network yourself ofc). Its very useful for wiring up databases with applications and such things without exposing them. I don't know if that matters for now for this image I'm not aware of an companion web-app type application that works with jriver. But if for instance somebody decided to make a better panel webui for jriver and makes a docker container for it that's how you could very easiely wire them up.

In this case, it's just one container and its fine on it's own I suppose. If you wanna change the version you change the version in the yml and you compose down/up the thing and it's done. Or pull if you have it set to latest and wanna check if there is a new latest. etc.
Title: Re: Docker Image for MC27
Post by: HaWi on September 17, 2020, 02:47:50 pm
Thanks much Max! This is very cool information. I had erroneously assumed I needed to run a separate docker-compose container, when in reality, the docker package on my Synology understands the docker-compose command all by itself. I put the .yml file into the volume1/docker folder where the MC26 and MC27 folders reside as well. All I needed to do then was ssh in, cd to the docker directory and execute the docker-compose pull command. However, the docker-compose down command didn't work as it didn't remove the old container, but didn't throw an error either. So when I ran docker-compose up -d, I got an error:

ERROR: for jrivermc27  Cannot create container for service jrivermc27: Conflict. The container name "/jrivermc27" is already in use by container "very long HEX number, I think". You have to remove (or rename) that container to be able to reuse that name.
 
Because I was a bit paranoid and didn't want to loose the container that works, I changed the name of the container and ran the up -d again and, voilā, there is the updated MC27.0.12 running in docker. I love it.
Thank you again so much!
cheers,
Hans
Title: Re: Docker Image for MC27
Post by: sjhilton on September 22, 2020, 06:05:52 am
Hi Max - thanks for your work on this. I've managed to get it working on qnap container station as well. I had to switch the display variable from :0 to :1 for some reason, but after doing that it seems to work OK. I assume with new version releases they will just be downloaded on restarting the container rather than having to do a rebuild? I couldn't see anything pop up in the terminal checking the repository. Thanks again.
Title: Re: Docker Image for MC27
Post by: HaWi on September 22, 2020, 08:38:58 am
On the Synology, and I presume on the QNAP as well, there is no automatic update. You'll have to pull a new image, take the current container down and start a new one from the new image as described here (I recommend using docker-compose and a .yml file): https://hub.docker.com/r/shiomax/jrivermc27

Updating the container
docker-compose pull                to pull the latest image as specified in the compose file
docker-compose down             to stop and remove the container (does not mean your data is gone, assuming you have mounted your /config volume)
docker-compose up -d             to create the container and detach from the screen
docker image prune                 to cleanup unused images

If for some reason you can't use docker-compose, all of this can be done manually through the docker GUI (at least on the Synology)
Title: Re: Docker Image for MC27
Post by: max096 on September 22, 2020, 11:14:40 am
Hi Max - thanks for your work on this. I've managed to get it working on qnap container station as well. I had to switch the display variable from :0 to :1 for some reason, but after doing that it seems to work OK. I assume with new version releases they will just be downloaded on restarting the container rather than having to do a rebuild? I couldn't see anything pop up in the terminal checking the repository. Thanks again.

The images are automatically rebuilt in gitlab, but the container does not automatically update anything at runtime or when restarting. You need to pull another tag or the latest and use that. Essentially, you delete and recreate the container. Might seem odd if you're not used to docker much.

If you want a GUI that does it for you and qnap can't (don't know about that) you can also try portainer (https://www.portainer.io/). It's essentially a docker container to manager other docker containers with and does have a one button update thing. Under the hood it also pulls the image, deletes the container and creates a new one with the same configuration applied. I've used it when I first learned about docker, but since ditched it.

First time Im hearing that somebody had to change the display for VNC. You have a VNC server running on your host system as well? Running multiple containers of this image on the same system works fine.
Title: Re: Docker Image for MC27
Post by: HaWi on September 22, 2020, 11:52:35 am
Hi Max,
Is there a way to find out what version the image is (like MC27.0.12 or MC27.0.15 etc)?
many thanks,
Hans
Title: Re: Docker Image for MC27
Post by: max096 on September 22, 2020, 12:07:28 pm
Hi Max,
Is there a way to find out what version the image is (like MC27.0.12 or MC27.0.15 etc)?
many thanks,
Hans

You can look here https://hub.docker.com/r/shiomax/jrivermc27/tags

So currently 27.0.12 seems to be it. I don't think there is 27.0.15 yet for Linux. At least the forum only lists 27.0.12.
Title: Re: Docker Image for MC27
Post by: HaWi on September 22, 2020, 12:13:52 pm
Thanks Max, got it.
Title: Re: Docker Image for MC27
Post by: sjhilton on September 25, 2020, 08:52:04 pm
Thanks for all of your replies to my query about updating of mediacenter in the container. The reason I asked about the updating issue was because jatzoo's image does automatically update on restart (it runs apt-get and updates mediacenter and all of the other dependencies).

I have confirmed that docker compose is available on the QNAP by ssh so I can update that way if I need to, and I've now bind mounted /config so everything is not lost when I update. This is a great idea as I have occasionally had containers become corrupted (by QNAP firmware updates or updates to QNAP container station app).

I have also been playing with 'portainer' as well and I think I should be able to get that to work to do the update in a couple of clicks if I can write a 'custom app template' (it doesn't support compose file version 3 unfortunately). I realise I am just scratching the surface on docker at the moment and there's a lot of functionality to get my head around.

Max - on the 'display' environment variable I ran your image with the default settings on QNAP container station and it reported there was already an xserver running on display=:0 (or something similar) and went into a boot loop. It works fine with display=:1 (both from vnc and via the web ui). That might help someone else who tries to do this on a QNAP NAS, but I can't otherwise explain why it was doing that.

I'd be interested to know what everyone thinks of the performance of the types of docker images. The JRMark benchmark numbers are almost the same for jatzoo vs shiomax. I think the network performance seems to be a bit faster on shiomax?

Thanks again for all of your assistance.
Title: Re: Docker Image for MC27
Post by: max096 on September 26, 2020, 07:17:56 am
This is a great idea as I have occasionally had containers become corrupted (by QNAP firmware updates or updates to QNAP container station app).

That, you can test images before publishing them and you wont get into situations where you have to pull months worth of updates. Its not really my idea its actually more uncommon to find docker images that update at runtime.

I have also been playing with 'portainer' as well and I think I should be able to get that to work to do the update in a couple of clicks if I can write a 'custom app template' (it doesn't support compose file version 3 unfortunately). I realise I am just scratching the surface on docker at the moment and there's a lot of functionality to get my head around.
You dont need to use compose its just a suggestion because I like it. Its not magic it just runs docker commands too. If you like something else better use something else.

I'd be interested to know what everyone thinks of the performance of the types of docker images. The JRMark benchmark numbers are almost the same for jatzoo vs shiomax. I think the network performance seems to be a bit faster on shiomax?

It should ideally be about the same. After all most of the work in this regard is done by the Linux Kernel People, Debian, JRiver, etc.

I think you should be able to achieve almost equivalent performance to running it on that box without docker. Except when you need GPU performance. Its possible to map dedicated GPU devices to be available in the container as well. But I never really did try that and it may need some additional setup in the image like mapping the alsa sound device did.
Title: Re: Docker Image for MC27
Post by: HaWi on September 26, 2020, 11:39:49 am

I'd be interested to know what everyone thinks of the performance of the types of docker images. The JRMark benchmark numbers are almost the same for jatzoo vs shiomax. I think the network performance seems to be a bit faster on shiomax?


I am using the same library on my iMac MC27 and for the Docker container, sharing the same media files. Although the JRMark of the Docker container is much lower than the iMac's, I still find the WebUI of the Docker container more responsive and snappier, especially when scrolling a large pane.  That may have something to do with the fact that both, the media and the library, are located on the NAS.
Title: Re: Docker Image for MC27
Post by: max096 on September 26, 2020, 01:17:25 pm
I am using the same library on my iMac MC27 and for the Docker container, sharing the same media files. Although the JRMark of the Docker container is much lower than the iMac's, I still find the WebUI of the Docker container more responsive and snappier, especially when scrolling a large pane.  That may have something to do with the fact that both, the media and the library, are located on the NAS.

Well... your prebuilt NAS probably has half the cores and much lower clock speeds. If you wanted to make a comparison you should be running both on your MAC or even better both on some Linux Box (as I'm not sure how consistent JRMark is cross platforms).

That's what I'm getting on my desktop on Fedora 32
Code: [Select]
=== Running Benchmarks (please do not interrupt) ===

Running 'Math' benchmark...
    Single-threaded integer math... 1.597 seconds
    Single-threaded floating point math... 2.159 seconds
    Multi-threaded integer math... 0.329 seconds
    Multi-threaded mixed math... 0.282 seconds
Score: 4350

Running 'Image' benchmark...
    Image creation / destruction... 0.295 seconds
    Flood filling... 0.352 seconds
    Direct copying... 0.345 seconds
    Small renders... 0.671 seconds
    Bilinear rendering... 0.179 seconds
    Bicubic rendering... 0.114 seconds
Score: 11255

Running 'Database' benchmark...
    Create database... 0.261 seconds
    Populate database... 1.028 seconds
    Save database... 0.111 seconds
    Reload database... 0.043 seconds
    Search database... 1.580 seconds
    Sort database... 0.596 seconds
    Group database... 0.887 seconds
Score: 4771

JRMark (version 27.0.15 64 bit): 6792

And in docker on that same machine

Code: [Select]
=== Running Benchmarks (please do not interrupt) ===

Running 'Math' benchmark...
    Single-threaded integer math... 1.602 seconds
    Single-threaded floating point math... 2.160 seconds
    Multi-threaded integer math... 0.327 seconds
    Multi-threaded mixed math... 0.284 seconds
Score: 4346

Running 'Image' benchmark...
    Image creation / destruction... 0.313 seconds
    Flood filling... 0.354 seconds
    Direct copying... 0.348 seconds
    Small renders... 0.685 seconds
    Bilinear rendering... 0.186 seconds
    Bicubic rendering... 0.114 seconds
Score: 10998

Running 'Database' benchmark...
    Create database... 0.263 seconds
    Populate database... 1.058 seconds
    Save database... 0.123 seconds
    Reload database... 0.057 seconds
    Search database... 1.750 seconds
    Sort database... 0.581 seconds
    Group database... 0.850 seconds
Score: 4592

JRMark (version 27.0.15 64 bit): 6645

So... really it does not matter much.

In the container I run on my NAS I also only get 3400'ish. Again much slower box overall and the container is in a VM I only gave 4 vcores of a 4790k and 8gb ram vs a dekstop with 3900x and 32gb ddr4. It's basically my old desktop recycled as a NAS. Interestingly enough it gets 5099 in the database benchmark, which is more than the desktop. Both the desktop and the NAS have similar NVME ssds, just the one on the NAS is bigger as it's the boot drive for 5+ VMs. Guess bigger really is faster. It does make little sence to me though, because I thought that only makes a difference for max threwput and that a database load won't care about that.
Title: Re: Docker Image for MC27
Post by: HaWi on September 26, 2020, 03:12:32 pm
I agree, my comparison is not a great way of doing it. Your benchmarks are impressive!
Title: Re: Docker Image for MC27
Post by: HaWi on October 14, 2020, 04:29:35 pm
Max, thanks for the update to MC27.0.21
With docker compose it only took a minute to update. So cool!
Title: Re: Docker Image for MC27
Post by: RvdZ on October 24, 2020, 04:56:44 pm
Hi,
I'm running MC25 on docker, and this is working great. I tested MC27 and this also works fine. Great job!
But now I'm trying to get scrobbling to Last.fm working. I haven't done that before on JRiver. I did this like 10 years ago on squeezecenter, and I'm trying to get it working now on JRiver again.
I would like to get it working on MC25, but if it needs MC27, I just have to upgrade.

But now I'm running into the following problem:
When I go to tools-options-services-last.fm-...manage last.fm account...-connect to last.fm account, then nothing happens (MC27).
In MC25 it says a webpage should launch to authorize access, but this webpage is NOT launched.
The same happens when I try to manage the accounts for Twitter or Youtube (no webpage launched).

If I go to the main-menu - streaming - Last.fm, then the Last.fm page is launched correct.
So the docker is able to connect to the web, but it's not able to open a web page from the tools-menu.

Any idea what's going wrong?
Title: Re: Docker Image for MC27
Post by: Awesome Donkey on October 24, 2020, 05:49:56 pm
You might need to make sure you have a default web browser set up in Linux/your desktop environment.
Title: Re: Docker Image for MC27
Post by: RvdZ on October 25, 2020, 06:36:32 am
Thanks. The web browser was the issue.
Problem is that I run the docker via QNAP, and I couldn't get a default web browser configured.
I fixed it using the following work-around:
- Backed up library (using the docker).
- Installed JRiver on Windows and restored the backup-library.
- Did the settings for the last.fm account on Windows, and backed up the library again (using Windows).
- Started the docker again, restored the windows-backup.
- GO!
Title: Re: Docker Image for MC27
Post by: jlee700 on October 27, 2020, 09:54:17 am
I get an error when I try listening to wma file on my iphone via jremote - says error opening the file. JRemote is set up so that the docker MC27 image transcodes everything to high quality mp3 before sending to my iphone.

I have reverted to docker MC26 image to avoid this error. I experimented with raspberry pi4 MC27 and it transcoded wma files just fine. So I would imagine that it is either docker MC27 image's error or user error (more likely). I do not think (but not 100% certain) that I have changed any setting after importing MC26 library. flac, wav, m4a etc. files seem to work fine under MC27 image.

Any help is very much appreciated!
Title: Re: Docker Image for MC27
Post by: bob on October 27, 2020, 01:15:37 pm
I get an error when I try listening to wma file on my iphone via jremote - says error opening the file. JRemote is set up so that the docker MC27 image transcodes everything to high quality mp3 before sending to my iphone.

I have reverted to docker MC26 image to avoid this error. I experimented with raspberry pi4 MC27 and it transcoded wma files just fine. So I would imagine that it is either docker MC27 image's error or user error (more likely). I do not think (but not 100% certain) that I have changed any setting after importing MC26 library. flac, wav, m4a etc. files seem to work fine under MC27 image.

Any help is very much appreciated!
I really don't know a lot about the docker image but I can tell you that MC will need to be able to download into the docker container a newer version of libav for MC27 than was used on MC26.
Libav is required for playing back WMA. Also note that MC will not play back protected WMA on anything other than windows.
Title: Re: Docker Image for MC27
Post by: max096 on October 28, 2020, 08:31:36 am
Its possible something is missing that MC27 wants. The browser initially didnt work either for a similar reason. If you can figure out what is missing would be great. I can then add it to the image. Otherwise I can have a look at it later.
Title: Re: Docker Image for MC27
Post by: bob on October 28, 2020, 10:54:09 am
Its possible something is missing that MC27 wants. The browser initially didnt work either for a similar reason. If you can figure out what is missing would be great. I can then add it to the image. Otherwise I can have a look at it later.
If you can get into a command line on the container, you can look to see if the plugin was downloaded into
~/.jriver/Media\ Center\ 27/Plugins/linux_avcodec64
If you ldd -d * in there any missing libraries will show up.
Title: Re: Docker Image for MC27
Post by: HaWi on October 28, 2020, 01:08:44 pm
I only see linux_chromium64 in
~/.jriver/Media\ Center\ 27/Plugins/
so linux_avcodec64 is missing
 
Title: Re: Docker Image for MC27
Post by: max096 on October 28, 2020, 03:14:18 pm
So I converted some file to WMA and indeed streaming it to jremote does not work.

But jriver does not even seem to try downloading linux_avcodec64 at all (according to the logs). With Chromium it said in the logs that it started the download etc and then that it failed and what itīs missing. This just sais

Code: [Select]
0016650: 140129398150912: General: CFFmpegInputSource::Open: Start
0016651: 140129398150912: General: CFFmpegInputSource::Open: Failed to load ffmpeg libraries.
0016651: 140129398150912: General: CFFmpegInputSource::Open: Finish (1 ms)

Are you sure itīs supposed to download linux_avcodec64 still? It seems to me it wants to find libavcodec or the entier ffmpeg on the system instead.

EDIT: Installing FFMPEG does not do it.
Title: Re: Docker Image for MC27
Post by: bob on October 28, 2020, 09:56:49 pm
So I converted some file to WMA and indeed streaming it to jremote does not work.

But jriver does not even seem to try downloading linux_avcodec64 at all (according to the logs). With Chromium it said in the logs that it started the download etc and then that it failed and what itīs missing. This just sais

Code: [Select]
0016650: 140129398150912: General: CFFmpegInputSource::Open: Start
0016651: 140129398150912: General: CFFmpegInputSource::Open: Failed to load ffmpeg libraries.
0016651: 140129398150912: General: CFFmpegInputSource::Open: Finish (1 ms)

Are you sure itīs supposed to download linux_avcodec64 still? It seems to me it wants to find libavcodec or the entier ffmpeg on the system instead.

EDIT: Installing FFMPEG does not do it.
Well, if you are using the amd64 build, you should be downloading avcodec.
The only exception would be if transcoding in JRemote was off but then you wouldn't be able to play wma on your iDevice at all.
Title: Re: Docker Image for MC27
Post by: bob on October 28, 2020, 09:59:37 pm
So I converted some file to WMA and indeed streaming it to jremote does not work.

But jriver does not even seem to try downloading linux_avcodec64 at all (according to the logs). With Chromium it said in the logs that it started the download etc and then that it failed and what itīs missing. This just sais

Code: [Select]
0016650: 140129398150912: General: CFFmpegInputSource::Open: Start
0016651: 140129398150912: General: CFFmpegInputSource::Open: Failed to load ffmpeg libraries.
0016651: 140129398150912: General: CFFmpegInputSource::Open: Finish (1 ms)

Are you sure itīs supposed to download linux_avcodec64 still? It seems to me it wants to find libavcodec or the entier ffmpeg on the system instead.

EDIT: Installing FFMPEG does not do it.
BTW you can't even do that conversion in MC without libav.
If you tried doing that conversion IN the docker image it has to download libav (libavcodec).
Title: Re: Docker Image for MC27
Post by: max096 on October 29, 2020, 02:13:04 pm
BTW you can't even do that conversion in MC without libav.
If you tried doing that conversion IN the docker image it has to download libav (libavcodec).

Doing a conversion (of some sort) downloads libav and then it also streams WMA files to jremote successfully.
Title: Re: Docker Image for MC27
Post by: bob on October 29, 2020, 02:38:20 pm
Doing a conversion (of some sort) downloads libav and then it also streams WMA files to jremote successfully.
Good to know.
The dependency for transcoding probably isn't right for wma.
Title: Re: Docker Image for MC27
Post by: max096 on October 29, 2020, 03:57:00 pm
Well, if you are using the amd64 build, you should be downloading avcodec.
The only exception would be if transcoding in JRemote was off but then you wouldn't be able to play wma on your iDevice at all.

I wonder, because you worded it as 'you should'. Does JRiver use libraries installed on the system instead if they are there (meaning not the once in the .jriver folder but if I where to install them with apt system wide)? Does it prefer them over those downloaded by jriver if present. Or is it a fallback if the download failed.
Title: Re: Docker Image for MC27
Post by: bob on October 29, 2020, 04:22:39 pm
I wonder, because you worded it as 'you should'. Does JRiver use libraries installed on the system instead if they are there (meaning not the once in the .jriver folder but if I where to install them with apt system wide)? Does it prefer them over those downloaded by jriver if present. Or is it a fallback if the download failed.
MC always uses it's own versions of libraries other than the basic ones the system supports generically like libx11, etc.
This is because many of these are moving targets and would prevent the ability to run on different variations of linux.
Title: Re: Docker Image for MC27
Post by: jlee700 on November 01, 2020, 07:32:40 pm
On my machine linux_avcodec64 directory is present:
Code: [Select]
ls .jriver/Media\ Center\ 27/Plugins/linux_avcodec64/
libavcodec-jr.so.58  libavformat-jr.so.58  libswresample-jr.so.3
libavfilter-jr.so.7  libavutil-jr.so.56    libswscale-jr.so.5

Actually I made sure that its content is current by moving it to linux_avcodec64.bak. Upon restarting the container and requesting a WMA file, mc27 downloaded the plugin again.

But transcoding still does not work. I am using the same /config folder for both mc26 and mc27 containers and just edit docker-compose.yml to switch between versions - would that be a problem?
Title: Re: Docker Image for MC27
Post by: bob on November 02, 2020, 09:40:32 am
On my machine linux_avcodec64 directory is present:
Code: [Select]
ls .jriver/Media\ Center\ 27/Plugins/linux_avcodec64/
libavcodec-jr.so.58  libavformat-jr.so.58  libswresample-jr.so.3
libavfilter-jr.so.7  libavutil-jr.so.56    libswscale-jr.so.5

Actually I made sure that its content is current by moving it to linux_avcodec64.bak. Upon restarting the container and requesting a WMA file, mc27 downloaded the plugin again.

But transcoding still does not work. I am using the same /config folder for both mc26 and mc27 containers and just edit docker-compose.yml to switch between versions - would that be a problem?
I don't know how that switching works, it general that doesn't sound like it should be an issue.

To make sure it's not related to a particular wma file, use MC to convert a flac or mp3 to wma then try to stream that file  to JRemote and report the results please.
Title: Re: Docker Image for MC27
Post by: max096 on November 02, 2020, 10:15:18 am
On my machine linux_avcodec64 directory is present:
Code: [Select]
ls .jriver/Media\ Center\ 27/Plugins/linux_avcodec64/
libavcodec-jr.so.58  libavformat-jr.so.58  libswresample-jr.so.3
libavfilter-jr.so.7  libavutil-jr.so.56    libswscale-jr.so.5

Actually I made sure that its content is current by moving it to linux_avcodec64.bak. Upon restarting the container and requesting a WMA file, mc27 downloaded the plugin again.

But transcoding still does not work. I am using the same /config folder for both mc26 and mc27 containers and just edit docker-compose.yml to switch between versions - would that be a problem?

Should not. That's basically the equivalent of pulling out a drive with MC26 setup and shoving in another one with MC27 setup. The config folder is the home directory. You can try without mounting one. But also should not matter unless you put some settings into MC27 that broke it.

I did try it on jremote for android as I do not own an iphone. Can you stream your file in Panel? It also cant play WMA in the browser so it would need transcoding.
Title: Re: Docker Image for MC27
Post by: jlee700 on November 02, 2020, 08:47:07 pm
I tried several WMA files, all of them work on MC26 image, none on MC27. I do not think it is specific file problem. Also tried out FLAC, WAV, APE, M4A and everything works fine, just not WMA files.

To see if my setting is wrong, I did start MC27 image without mounting the config folder. It should be equivalent to a fresh installation. I imported a few files and the problem still exists - WMA files still don't play, the other files play fine. WMA files do not play in Panel either.

At least docker-compose makes it very easy to try different configuration. And I can stay with MC26 image until the solution is found. Your work is very much appreciated, both jriver and Max!
Title: Re: Docker Image for MC27
Post by: bob on November 03, 2020, 10:33:35 am
Just tested this and it works fine.
Not sure what your issue is.
under Plugins you should also have: linux_mp3_encoder64/lame
That's all it takes.
Title: Re: Docker Image for MC27
Post by: HaWi on November 03, 2020, 12:02:10 pm
I only have linux_chromium64 in the /config/.jriver/Media Center 27/Plugins folder
Title: Re: Docker Image for MC27
Post by: bob on November 03, 2020, 02:26:53 pm
I only have linux_chromium64 in the /config/.jriver/Media Center 27/Plugins folder
It needs that mp3 folder to transcode to mp3.
Those are downloaded upon demand.
Title: Re: Docker Image for MC27
Post by: HaWi on November 03, 2020, 03:34:49 pm
Oh, OK, thanks Bob.
Title: Re: Docker Image for MC27
Post by: ajw1997 on November 10, 2020, 03:05:22 pm
Hi all,
Just wondering if Jatzoo is planning to update his container for JRiver 27.  I have been successfully using that container for several years.  And am well aware of how to install and set it up.  The 'Max' container is a bit of an enigma for me...

Regards,

Andrew
Title: Re: Docker Image for MC27
Post by: HaWi on November 10, 2020, 03:40:19 pm
Hi all,
Just wondering if Jatzoo is planning to update his container for JRiver 27.  I have been successfully using that container for several years.  And am well aware of how to install and set it up.  The 'Max' container is a bit of an enigma for me...

Regards,

Andrew
Hi Andrew,
I'm using Max's container (now at 27.0.30) and it works brilliantly for me. I can send you my .yml file if you like. With that it's a breeze. Even I could do it and I am not very versed in docker nor Linux.
Cheers,
Hans
Title: Re: Docker Image for MC27
Post by: Signal2Noise on November 14, 2020, 12:14:54 am
Is there a tutorial on how to set up JRiver with Docker on Synology NAS? I’ve been searching high and low for something that doesn’t make my brain hurt.

If I could get this done I’d drop Roon in a heartbeat.
Title: Re: Docker Image for MC27
Post by: HaWi on November 14, 2020, 10:32:14 am
I followed this:
https://hub.docker.com/r/shiomax/jrivermc27

Also, Max was extremely helpful with any issues I had (created myself, of course, due to not understanding how things work).
EDIT: I would strongly recommend to use docker compose. I was initially reluctant, coz noob, but it does work like a charm and once you got it tuned to your details it's easy and fail safe
Title: Re: Docker Image for MC27
Post by: Signal2Noise on November 14, 2020, 10:59:57 am
I followed this:
https://hub.docker.com/r/shiomax/jrivermc27
...

Thanks. I did come across that and it’s the one I was planning to use. But even that just raises more doubt in my capabilities. Lots of reading involved and links to other other aspects of how to get files working. I will keep reading though and try it out this weekend perhaps.
Title: Re: Docker Image for MC27
Post by: max096 on November 14, 2020, 12:25:24 pm
Thanks. I did come across that and it’s the one I was planning to use. But even that just raises more doubt in my capabilities. Lots of reading involved and links to other other aspects of how to get files working. I will keep reading though and try it out this weekend perhaps.

I mean just because there is more stuff to read does not necessarily mean all of it is important for your specific use case.

If you run into any specific problem you can ask about those. I can fix up the guide some more based on that to hopefully make it clearer for others. But obviously by doing that the guide isnīt going to become any shorter, but quite the contrary.

Title: Re: Docker Image for MC27
Post by: Signal2Noise on November 14, 2020, 12:45:21 pm
Thanks Max096. Understood. As a beginner it’s the figuring out what is important or not in all that guide. I went on YouTube as well just learn about Docker a little more which I think will help.

I did come across one JRiver Getlib guide that says using Bridge mode was the way to go, but your guide says to use Host. So I was confused there. However your guide seems to make users happy so I will def follow it.

Cheers!
Title: Re: Docker Image for MC27
Post by: max096 on November 14, 2020, 12:58:45 pm
Thanks Max096. Understood. As a beginner it’s the figuring out what is important or not in all that guide. I went on YouTube as well just learn about Docker a little more which I think will help.

I did come across one JRiver Getlib guide that says using Bridge mode was the way to go, but your guide says to use Host. So I was confused there. However your guide seems to make users happy so I will def follow it.

Cheers!

Bridge mode is fine too if you need the flexibility of changing ports. But Ive seen some things not quite work as far as network discovery is concerned and its not easy to fix. But JRiver gives you the option to specify IPs and such and so even if it does not find it you can still connect to it. It may be a problem for some DLNA clients as some dont give you that option. And then if it does not find it you are out of luck.

But this has nothing to do with this image specifically. Its frequently a problem with any image that tries to auto discover things in the network + bridge networking. Technically, your jriver instance isnt in the same network anymore when using bridge networking and that can be a problem.

The license not staying activated is another things, but thats a rather easy fix by providing a mac-address for your container to force it to stay consistent.
Title: Re: Docker Image for MC27
Post by: HaWi on November 14, 2020, 04:05:34 pm
Thanks Max096. Understood. As a beginner it’s the figuring out what is important or not in all that guide. I went on YouTube as well just learn about Docker a little more which I think will help.

I did come across one JRiver Getlib guide that says using Bridge mode was the way to go, but your guide says to use Host. So I was confused there. However your guide seems to make users happy so I will def follow it.

Cheers!
I am running host mode and it is flawless.
Title: Re: Docker Image for MC27
Post by: HaWi on November 14, 2020, 04:49:58 pm
I have been trying to fix my registration with the key.mjr file in the volume1/docker/MC27/config directory with
exec env HOME=/config mediacenter27 /RestoreFromFile /config/key.mjr
but I get the error "env: 'mediacenter27': No such file or directory"
What am I doing wrong?
Title: Re: Docker Image for MC27
Post by: max096 on November 14, 2020, 05:59:03 pm
I have been trying to fix my registration with the key.mjr file in the volume1/docker/MC27/config directory with
exec env HOME=/config mediacenter27 /RestoreFromFile /config/key.mjr
but I get the error "env: 'mediacenter27': No such file or directory"
What am I doing wrong?

Does the registration in JRiver not work anymore? It works for me just tried. There is really no benefit doing the .mjr thing unless you cannot activate any other way.

Either way that error comes up if there is no executable named mediacenter27. You sure you are in the right container? Did you log into the container first (docker exec -it <container_name> /bin/bash)?
Title: Re: Docker Image for MC27
Post by: HaWi on November 14, 2020, 06:03:14 pm
Thanks Max,
The registration is fine. I just wanted to make it permanent since I had to shut down recently and the reg was lost. I did log into the container as outlined in your post. Not a big deal.
Title: Re: Docker Image for MC27
Post by: max096 on November 14, 2020, 06:54:10 pm
Thanks Max,
The registration is fine. I just wanted to make it permanent since I had to shut down recently and the reg was lost. I did log into the container as outlined in your post. Not a big deal.

Normally it should be permanent with host networking without doing anything special. But you can try to apply a mac address similarly to the bridge config.

Applying it with the mjr file wont help.
Title: Re: Docker Image for MC27
Post by: HaWi on November 14, 2020, 07:11:17 pm
Thanks Max
The MAC address would be an environment variable?
Title: Re: Docker Image for MC27
Post by: max096 on November 15, 2020, 04:57:31 pm
Thanks Max
The MAC address would be an environment variable?

No that's a docker options there are examples in the bridge config on how to do this. Usually, you don't need to do this for host networking, but if your host is a VM whose mac address changes then you do need it there too.
Title: Re: Docker Image for MC27
Post by: HaWi on November 15, 2020, 07:27:18 pm
Thanks Max,
I’ll look into it if the reg gets lost again for some reason.
Title: Re: Docker Image for MC27
Post by: vickozagi on November 19, 2020, 02:27:38 am
S,mall access problem. I cannot access files.
I tried adding user:
      - USER_ID=1001
      - GROUP_ID=100
or:
      - PUID=1001
      - PGID=1000
And neither works. I can access parent folder, but nor files?
Any suggestions?
Title: Re: Docker Image for MC27
Post by: HaWi on November 19, 2020, 09:14:51 am
I had the same issue that Max helped me to solve.
ssh into your server, type
 id <ENTER>
that should list all the users and groups with their id's. Then use the relevant one to set up your container.
Hope that helps
cheers,
Hans
Title: Re: Docker Image for MC27
Post by: vickozagi on November 19, 2020, 11:35:01 pm
I tried that.
root@Mreza:~# id
uid=0(root) gid=0(root) groups=0(root)

and added to the jrivermc27 stack:
version: "2"
services:
  jrivermc27:
    image: shiomax/jrivermc27
    container_name: jrivermc27
    restart: always
    network_mode: host
    cap_add:
      - NET_ADMIN # This runs the container with raised privileges
    environment:
      - TZ=America/Los_Angeles
      - VNC_PASSWORD=12345
      #- USER_ID=0
      #- GROUP_ID=0
      - PUID=0
      - PGID=0
    volumes:
Title: Re: Docker Image for MC27
Post by: max096 on November 20, 2020, 08:36:38 am
S,mall access problem. I cannot access files.
I tried adding user:
      - USER_ID=1001
      - GROUP_ID=100
or:
      - PUID=1001
      - PGID=1000
And neither works. I can access parent folder, but nor files?
Any suggestions?

Try to ls -la for the files you cannot access and see what user/group they belong too. If 1001 user does only have access to the parent directory you wont be able to access them in the container either.

You probably need to either pick a different user or change permissions with chown and chmod.
Title: Re: Docker Image for MC27
Post by: max096 on November 20, 2020, 08:41:08 am
I tried that.
root@Mreza:~# id
uid=0(root) gid=0(root) groups=0(root)

and added to the jrivermc27 stack:
version: "2"
services:
  jrivermc27:
    image: shiomax/jrivermc27
    container_name: jrivermc27
    restart: always
    network_mode: host
    cap_add:
      - NET_ADMIN # This runs the container with raised privileges
    environment:
      - TZ=America/Los_Angeles
      - VNC_PASSWORD=12345
      #- USER_ID=0
      #- GROUP_ID=0
      - PUID=0
      - PGID=0
    volumes:

id without anything shows you the id of the user you are logged in as (so in your case root) you can id <username> to show the once for a different user. It was never the intention to run jriver as root user... quite the opposite, not sure if thatīs supposed to work, never tried. But wether it does or doesnīt itīs a bad idea to run everything as root.

Try to run ls -la on the folder you are trying to access then id <user_that_you_found> and use that id instead of 0.

Also, any particular reason why you added this?

Quote
    cap_add:
      - NET_ADMIN # This runs the container with raised privileges

Either way assuming User 1001 exists and is the one that owns your Music directory and who should own it you can run

Code: [Select]
sudo chown -R 1001:1001 /path/to/folder
sudo chmod -R 750 /path/to/folder
sudo find /path/to/folder -type d -exec sudo chmod +x {} \;

This will make all the sub-files and sub-folders owned by user 1001 and group 1001. The second one sets access rights to all the files and folders there to 750 so (read/write/execute for user) (read/execute for group) and nothing for everyone else.
The last one makes all folders executeable. Not strictly necessary here. But if you want to have a readonly user they need executeable permissions on the directories to be able to browse the directory. They would not need execute permissions on anything else though.

You can also replace 1001 here with the username of that user, but since I donīt know usernames on your system and in the first post you typed 1001 I stuck with that for the explanation.
Title: Re: Docker Image for MC27
Post by: HaWi on November 22, 2020, 10:18:43 am
Thank you, Max, for the 27.0.35 update!
cheers,
Hans
Title: Re: Docker Image for MC27
Post by: Richard Martin on December 05, 2020, 01:04:40 pm
It needs that mp3 folder to transcode to mp3.
Those are downloaded upon demand.

I am running a shiomax MC27 docker image on a Synology NAS.  I play my audio files to various DLNA Renderers.  FLAC and MP3 files play without a problem, but not wma files.  They say they are playing but don't.  /docker/jriver/.jriver/Media Center 27/Plugins/linux_mp3_encoder64/lame is present and so is /docker/jriver/.jriver/Media Center 27/Plugins/linux_avcodec64

Can anyone offer any advice on how to trouble shoot this?
Title: Re: Docker Image for MC27
Post by: bob on December 05, 2020, 06:58:23 pm
I am running a shiomax MC27 docker image on a Synology NAS.  I play my audio files to various DLNA Renderers.  FLAC and MP3 files play without a problem, but not wma files.  They say they are playing but don't.  /docker/jriver/.jriver/Media Center 27/Plugins/linux_mp3_encoder64/lame is present and so is /docker/jriver/.jriver/Media Center 27/Plugins/linux_avcodec64

Can anyone offer any advice on how to trouble shoot this?
Protected WMA files will not transcode or play on non-windows machines so if that is what your files are you won't be able to play them.
Title: Re: Docker Image for MC27
Post by: Richard Martin on December 06, 2020, 03:44:24 pm
Protected WMA files will not transcode or play on non-windows machines so if that is what your files are you won't be able to play them.
Thank you, I'll have to look in to that, I don't know if they are DRM protected or not.
Title: Re: Docker Image for MC27
Post by: Wheaten on December 24, 2020, 05:19:06 am
Hi,

Installed JRiverMC27 (Docker) without any issues on my QNAP QTS. Intending to use this as the main library. However whatever I am trying, it will only stream in 320kbps mp3, instead of flac.
I've setup the media network correctly https://prnt.sc/w92txx (https://prnt.sc/w92txx),
but it streams only in MP3. any suggestion or am I missing something?
https://prnt.sc/w92yhe (https://prnt.sc/w92yhe)

Title: Re: Docker Image for MC27
Post by: JimH on December 24, 2020, 06:55:12 am
You may have conversion set on the DLNA Server.
Title: Re: Docker Image for MC27
Post by: Wheaten on December 24, 2020, 07:10:47 am
No I didn't
Uploaded the picture, instead of pasting the URL.

And a 2nd one (2nd, 3d picture) from the client.

Using MC since MC17, never had this before. But this is the first to run it in a docker.
Title: Re: Docker Image for MC27
Post by: mwillems on December 24, 2020, 09:05:59 am
Hi,

Installed JRiverMC27 (Docker) without any issues on my QNAP QTS. Intending to use this as the main library. However whatever I am trying, it will only stream in 320kbps mp3, instead of flac.
I've setup the media network correctly https://prnt.sc/w92txx (https://prnt.sc/w92txx),
but it streams only in MP3. any suggestion or am I missing something?
https://prnt.sc/w92yhe (https://prnt.sc/w92yhe)



Your pics don't show the client's Media Network settings, and the client Media Network settings can cause what you're seeing.  On the client PC, if you open Options-->Media Network-->Client Options do you have the audio options there set for "Original" also?
Title: Re: Docker Image for MC27
Post by: Wheaten on December 24, 2020, 09:14:20 am
 :-[
euh..........Now I do.........
And its working, missed that one apparently.

Aha, I never touched that setting, as this client was always the main library/server. Now with adding a new client, sharing the same lib, I didn't want to have it 24/7 running, So I moved the function to the the NAS.
As this box never acted as a client, never had to configure that part.

Thanks for the support!!!

Title: Re: Docker Image for MC27
Post by: mwillems on December 24, 2020, 09:15:24 am
:-[
euh..........Now I do.........
And its working, missed that one apparently.

Thanks!!!

I love it when a plan comes together!  Happy Holidays!
Title: Re: Docker Image for MC27
Post by: Wheaten on December 24, 2020, 09:20:55 am
I love it when a plan comes together!  Happy Holidays!

Same to you all!!!
Title: Re: Docker Image for MC27
Post by: HaWi on December 29, 2020, 02:22:29 pm
I tried to pull the latest image but still get 27.0.39. Is that the latest?
Many thanks
Hans
Title: Re: Docker Image for MC27
Post by: max096 on December 30, 2020, 03:32:39 pm
I tried to pull the latest image but still get 27.0.39. Is that the latest?
Many thanks
Hans

.45 seems to be in Beta, Iīve never built any Beta image as I donīt have a Beta access key I would not even have any way to try if it works I think.
Title: Re: Docker Image for MC27
Post by: HaWi on December 30, 2020, 07:37:58 pm
Ah, I see, thanks Max
Wishing you a happy, healthy and successful New Year
Hans
Title: Re: Docker Image for MC27
Post by: Awesome Donkey on December 31, 2020, 03:31:14 am
.45 seems to be in Beta, Iīve never built any Beta image as I donīt have a Beta access key I would not even have any way to try if it works I think.

You don't need a beta access key for MC for Linux betas. They're posted publicly on top of this board with direct links.
Title: Re: Docker Image for MC27
Post by: max096 on December 31, 2020, 06:18:18 am
You don't need a beta access key for MC for Linux betas. They're posted publicly on top of this board with direct links.

Oh. I assumed you do to actually use them. Never really tried. Appearently, Jim also added me as Beta Member now though.

But why does the install jrivermc script BryanC made have a beta access key option then? Are only some of them public or all of the Linux Betas?
Title: Re: Docker Image for MC27
Post by: bob on December 31, 2020, 09:29:34 am
Once upon a time some linux beta builds weren't public.
They have been in a separate public repo and download area now for quite some time.
Title: Re: Docker Image for MC27
Post by: HaWi on January 26, 2021, 10:05:00 am
Thanks for the update to .58, Max.
Title: Re: Docker Image for MC27
Post by: max096 on January 26, 2021, 06:37:11 pm
Thanks for the update to .58, Max.

You dont have to thank me for that. I literally didnt do anything it does it on its own. ^^

It just does only build the once in the stable and latest repositories not the beta one. Would be easy to add though.
Title: Re: Docker Image for MC27
Post by: Afrosheen on January 27, 2021, 12:14:09 am
I found the culprit of why I was personally experiencing so many frequent audio streaming errors while using JRemote.  But my solution seems to be a temporary solution because it keeps getting reset. 

So I was reading the terminal logs and I came upon the following repeated message:

Quote
[0127/054057.835938:WARNING:discardable_shared_memory_manager.cc(194)] Less than 64MB of free space in temporary directory for shared memory files: 63

So I did some research and found that I could run the following command to expand the memory of QNAP's /tmp (I've set it to 2 gigs so that I wouldn't need to go back and increase it):
Quote
mount -o remount,size=2G,noatime /tmp

Now each time my QNAP restarts I would need to run the command again.  I'm wondering if there's a way to set the /tmp folder to something else so that's it's dedicated to only the JRiver container? 

Thanks for the consideration!
Title: Re: Docker Image for MC27
Post by: bob on January 27, 2021, 08:46:50 am
I found the culprit of why I was personally experiencing so many frequent audio streaming errors while using JRemote.  But my solution seems to be a temporary solution because it keeps getting reset. 

So I was reading the terminal logs and I came upon the following repeated message:

So I did some research and found that I could run the following command to expand the memory of QNAP's /tmp (I've set it to 2 gigs so that I wouldn't need to go back and increase it):
Now each time my QNAP restarts I would need to run the command again.  I'm wondering if there's a way to set the /tmp folder to something else so that's it's dedicated to only the JRiver container? 

Thanks for the consideration!
What build are you running?
Would you take a look into /dev/shm when you get that message?
That’s where MC’s shared memory segments are.
Title: Re: Docker Image for MC27
Post by: max096 on January 27, 2021, 11:54:33 am
I found the culprit of why I was personally experiencing so many frequent audio streaming errors while using JRemote.  But my solution seems to be a temporary solution because it keeps getting reset. 

So I was reading the terminal logs and I came upon the following repeated message:

So I did some research and found that I could run the following command to expand the memory of QNAP's /tmp (I've set it to 2 gigs so that I wouldn't need to go back and increase it):
Now each time my QNAP restarts I would need to run the command again.  I'm wondering if there's a way to set the /tmp folder to something else so that's it's dedicated to only the JRiver container? 

Thanks for the consideration!

Try to run the container with --shm-size=2g. Or in compose shm_size: '2gb'.
Title: Re: Docker Image for MC27
Post by: HaWi on January 27, 2021, 01:31:50 pm
You dont have to thank me for that. I literally didnt do anything it does it on its own. ^^

It just does only build the once in the stable and latest repositories not the beta one. Would be easy to add though.
Still, you make it happen and I appreciate that very much. My joy playing music has increased tremendously since I am able to play my music from the NAS onto my receiver. I wouldn't have been able to do this without your help.
Title: Re: Docker Image for MC27
Post by: lwlmc on February 09, 2021, 01:28:43 am
Hi Max, Thanks for making this Docker container. I am running it on my Unraid server and it is very easy and convenient.

My music library includes Japanese music and the container by default displays Japanese characters as a bunch of rectangles. The base image you used for the container has a ENABLE_CJK_FONT env variable that I am setting so it installs the font needed for the Japanese text to display properly in MC. However, when that script runs it fails to install the font package. Here's a snippet of the log:

Code: [Select]
[cont-init.d] 10-cjk-font.sh: executing...
[cont-init.d] 10-cjk-font.sh: installing CJK font...
[cont-init.d] 10-cjk-font.sh: Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
[cont-init.d] 10-cjk-font.sh: Get:2 http://deb.debian.org/debian buster InRelease [122 kB]
[cont-init.d] 10-cjk-font.sh: Get:3 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
[cont-init.d] 10-cjk-font.sh: Get:4 http://security.debian.org/debian-security buster/updates/main amd64 Packages [267 kB]
[cont-init.d] 10-cjk-font.sh: Get:5 http://deb.debian.org/debian buster/main amd64 Packages [7907 kB]
[cont-init.d] 10-cjk-font.sh: Get:6 http://deb.nodesource.com/node_12.x buster InRelease [4584 B]
[cont-init.d] 10-cjk-font.sh: Get:7 http://dist.jriver.com/latest/mediacenter buster InRelease [3612 B]
[cont-init.d] 10-cjk-font.sh: Get:8 http://deb.nodesource.com/node_12.x buster/main amd64 Packages [767 B]
[cont-init.d] 10-cjk-font.sh: Get:9 http://dist.jriver.com/latest/mediacenter buster/main i386 Packages [706 B]
[cont-init.d] 10-cjk-font.sh: Get:10 http://dist.jriver.com/latest/mediacenter buster/main arm64 Packages [642 B]
[cont-init.d] 10-cjk-font.sh: Get:11 http://dist.jriver.com/latest/mediacenter buster/main amd64 Packages [678 B]
[cont-init.d] 10-cjk-font.sh: Get:12 http://dist.jriver.com/latest/mediacenter buster/main armhf Packages [685 B]
[cont-init.d] 10-cjk-font.sh: Get:13 http://deb.debian.org/debian buster-updates/main amd64 Packages [9504 B]
[cont-init.d] 10-cjk-font.sh: Fetched 8434 kB in 3s (2794 kB/s)
[cont-init.d] 10-cjk-font.sh: Reading package lists...
[cont-init.d] 10-cjk-font.sh: Reading package lists...
[cont-init.d] 10-cjk-font.sh: Building dependency tree...
[cont-init.d] 10-cjk-font.sh: Reading state information...
[cont-init.d] 10-cjk-font.sh: The following NEW packages will be installed:
[cont-init.d] 10-cjk-font.sh: fonts-wqy-zenhei
[cont-init.d] 10-cjk-font.sh: 0 upgraded, 1 newly installed, 0 to remove and 37 not upgraded.
[cont-init.d] 10-cjk-font.sh: Need to get 7472 kB of archives.
[cont-init.d] 10-cjk-font.sh: After this operation, 16.8 MB of additional disk space will be used.
[cont-init.d] 10-cjk-font.sh: Get:1 http://deb.debian.org/debian buster/main amd64 fonts-wqy-zenhei all 0.9.45-7 [7472 kB]
[cont-init.d] 10-cjk-font.sh: debconf: delaying package configuration, since apt-utils is not installed
[cont-init.d] 10-cjk-font.sh: Fetched 7472 kB in 22s (337 kB/s)
[cont-init.d] 10-cjk-font.sh: dpkg: unrecoverable fatal error, aborting:
[cont-init.d] 10-cjk-font.sh: unknown system group 'messagebus' in statoverride file; the system group got removed
[cont-init.d] 10-cjk-font.sh: before the override, which is most probably a packaging bug, to recover you
[cont-init.d] 10-cjk-font.sh: can remove the override manually with dpkg-statoverride
[cont-init.d] 10-cjk-font.sh: E: Sub-process /usr/bin/dpkg returned an error code (2)
[cont-init.d] 10-cjk-font.sh: exited 0.

What I found is the 'messagebus' group is not present on the system and dpkg always fails unless the following fix is run (from https://askubuntu.com/questions/335538/unknown-user-in-statoverride-file):

Code: [Select]
sudo sed -i '/messagebus/d' /var/lib/dpkg/statoverride
Afterwards 'add-pkg' works again and I can manually open a Bash shell inside the container and manually install the font package I need. (Or I can manually run that 10-cjk-font.sh). Problem is, every time I update the container (which involves container deletion and re-creation) I need to redo the fix to the statoverride file and reinstall the fonts.

Is it possible to add an environment variable to the container so we can install additional packages each time the container runs (after also fixing up the statoverride file)?

Thank you.
Title: Re: Docker Image for MC27
Post by: Afrosheen on February 10, 2021, 01:06:41 pm
What build are you running?
Would you take a look into /dev/shm when you get that message?
That’s where MC’s shared memory segments are.

I believe that I resolved the issue; when my QNAP automatically restarts, QNAP's Container Station runs all of the containers including those that I had originally turned off.  I overlooked that the previous version of MC was now running at the same time.  I'm now able to run MC27 and play tracks without frequent audio streaming errors, knock on wood.  Thank you all for the support!!
Title: Re: Docker Image for MC27
Post by: Afrosheen on February 10, 2021, 01:09:16 pm
Is it possible to set up Last.fm via the settings of MC27?  I click on "Connect to Last.fm account" under "services" in the main window, but I get nothing. 
Title: Re: Docker Image for MC27
Post by: bob on February 11, 2021, 09:29:12 am
Is it possible to set up Last.fm via the settings of MC27?  I click on "Connect to Last.fm account" under "services" in the main window, but I get nothing.
At some point or another it's going to need to popup a browser in the container.
MC uses xdg-open to open url's, etc in an external browser.
Title: Re: Docker Image for MC27
Post by: max096 on February 18, 2021, 05:20:18 am
Hi Max, Thanks for making this Docker container. I am running it on my Unraid server and it is very easy and convenient.

My music library includes Japanese music and the container by default displays Japanese characters as a bunch of rectangles. The base image you used for the container has a ENABLE_CJK_FONT env variable that I am setting so it installs the font needed for the Japanese text to display properly in MC. However, when that script runs it fails to install the font package. Here's a snippet of the log:

Code: [Select]
[cont-init.d] 10-cjk-font.sh: executing...
[cont-init.d] 10-cjk-font.sh: installing CJK font...
[cont-init.d] 10-cjk-font.sh: Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
[cont-init.d] 10-cjk-font.sh: Get:2 http://deb.debian.org/debian buster InRelease [122 kB]
[cont-init.d] 10-cjk-font.sh: Get:3 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
[cont-init.d] 10-cjk-font.sh: Get:4 http://security.debian.org/debian-security buster/updates/main amd64 Packages [267 kB]
[cont-init.d] 10-cjk-font.sh: Get:5 http://deb.debian.org/debian buster/main amd64 Packages [7907 kB]
[cont-init.d] 10-cjk-font.sh: Get:6 http://deb.nodesource.com/node_12.x buster InRelease [4584 B]
[cont-init.d] 10-cjk-font.sh: Get:7 http://dist.jriver.com/latest/mediacenter buster InRelease [3612 B]
[cont-init.d] 10-cjk-font.sh: Get:8 http://deb.nodesource.com/node_12.x buster/main amd64 Packages [767 B]
[cont-init.d] 10-cjk-font.sh: Get:9 http://dist.jriver.com/latest/mediacenter buster/main i386 Packages [706 B]
[cont-init.d] 10-cjk-font.sh: Get:10 http://dist.jriver.com/latest/mediacenter buster/main arm64 Packages [642 B]
[cont-init.d] 10-cjk-font.sh: Get:11 http://dist.jriver.com/latest/mediacenter buster/main amd64 Packages [678 B]
[cont-init.d] 10-cjk-font.sh: Get:12 http://dist.jriver.com/latest/mediacenter buster/main armhf Packages [685 B]
[cont-init.d] 10-cjk-font.sh: Get:13 http://deb.debian.org/debian buster-updates/main amd64 Packages [9504 B]
[cont-init.d] 10-cjk-font.sh: Fetched 8434 kB in 3s (2794 kB/s)
[cont-init.d] 10-cjk-font.sh: Reading package lists...
[cont-init.d] 10-cjk-font.sh: Reading package lists...
[cont-init.d] 10-cjk-font.sh: Building dependency tree...
[cont-init.d] 10-cjk-font.sh: Reading state information...
[cont-init.d] 10-cjk-font.sh: The following NEW packages will be installed:
[cont-init.d] 10-cjk-font.sh: fonts-wqy-zenhei
[cont-init.d] 10-cjk-font.sh: 0 upgraded, 1 newly installed, 0 to remove and 37 not upgraded.
[cont-init.d] 10-cjk-font.sh: Need to get 7472 kB of archives.
[cont-init.d] 10-cjk-font.sh: After this operation, 16.8 MB of additional disk space will be used.
[cont-init.d] 10-cjk-font.sh: Get:1 http://deb.debian.org/debian buster/main amd64 fonts-wqy-zenhei all 0.9.45-7 [7472 kB]
[cont-init.d] 10-cjk-font.sh: debconf: delaying package configuration, since apt-utils is not installed
[cont-init.d] 10-cjk-font.sh: Fetched 7472 kB in 22s (337 kB/s)
[cont-init.d] 10-cjk-font.sh: dpkg: unrecoverable fatal error, aborting:
[cont-init.d] 10-cjk-font.sh: unknown system group 'messagebus' in statoverride file; the system group got removed
[cont-init.d] 10-cjk-font.sh: before the override, which is most probably a packaging bug, to recover you
[cont-init.d] 10-cjk-font.sh: can remove the override manually with dpkg-statoverride
[cont-init.d] 10-cjk-font.sh: E: Sub-process /usr/bin/dpkg returned an error code (2)
[cont-init.d] 10-cjk-font.sh: exited 0.

What I found is the 'messagebus' group is not present on the system and dpkg always fails unless the following fix is run (from https://askubuntu.com/questions/335538/unknown-user-in-statoverride-file):

Code: [Select]
sudo sed -i '/messagebus/d' /var/lib/dpkg/statoverride
Afterwards 'add-pkg' works again and I can manually open a Bash shell inside the container and manually install the font package I need. (Or I can manually run that 10-cjk-font.sh). Problem is, every time I update the container (which involves container deletion and re-creation) I need to redo the fix to the statoverride file and reinstall the fonts.

Is it possible to add an environment variable to the container so we can install additional packages each time the container runs (after also fixing up the statoverride file)?

Thank you.

Iīll see what I can do about the cjk-font.

As far as installing custom packages on your own I think it would be easiest to make an environment variable where you can set a path to a script. Then you could write some script with whatever you want to do on startup. Be it installing packages or anything else really.
Title: Re: Docker Image for MC27
Post by: max096 on February 21, 2021, 10:54:20 am
As a temporary quick fix you can create a file '10-cjk-font.sh'

Code: [Select]
#!/usr/bin/with-contenv sh

set -e # Exit immediately if a command exits with a non-zero status.
set -u # Treat unset variables as an error.

log() {
    echo "[cont-init.d] $(basename $0): $*"
}

if [ "${ENABLE_CJK_FONT:-0}" -eq 1 ]; then
    if fc-list | grep -q "WenQuanYi Zen Hei"; then
        log "CJK font already installed."
    else
        log "installing CJK font..."
        if [ -n "$(which apk)" ]; then
            add-pkg wqy-zenhei --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing 2>&1 | sed "s/^/[cont-init.d] $(basename $0): /"
        else
            sed -i /messagebus/d /var/lib/dpkg/statoverride
            add-pkg fonts-wqy-zenhei 2>&1 | sed "s/^/[cont-init.d] $(basename $0): /"
        fi
    fi
fi

# vim: set ft=sh :

Itīs this file https://raw.githubusercontent.com/jlesage/docker-baseimage-gui/master/rootfs/etc/cont-init.d/10-cjk-font.sh the only difference being the added 'sed -i /messagebus/d /var/lib/dpkg/statoverride'.

Then you can mount this to /etc/cont-init.d to overwride it inside the container.
Code: [Select]
volumes:
   - /path/to/file/10-cjk-font.sh:/etc/cont-init.d/10-cjk-font.sh

Then it should work again. I wonīt be adding this into the image and instead make an issue on the baseimage or a pull request to get the change in. Just gonna take a bit longer.

This is also a good way you can inject custom scripts into the container that does not actually need any change. Didnīt think of it at first. All of the scripts in /etc/cont-init.d are executed on startup ordererd by the proceeding number. So if you where to mount 100_myscript.sh into there it would execute at the very end.
Title: Re: Docker Image for MC27
Post by: NH on February 28, 2021, 04:25:25 am
I' ve updated my Docker image to now also build images for MediaCenter 27.

Dear Max

Is there a step by step guide using the QNAP GUI that I can use. I dont know how to use Linux commands to do this.

I managed to create the container but am unable to use VNC to get inside JRiver to configure. I get to the panel screen on port 52199 but without being able to configure import files or other settings.

And I am not able to log in via VNC server. Tried several times - get the message _connection closed unexpectedly". So not able to do anything.

I am obviously missing a trick because others seem to be able to use it.

Enclosed a sample from another software http://www.jthink.net/songkong/install_docker_qnap.jsp which even a Linux ignoramus like was able to install. I straightaway landed on the GUI of the app. Will be great to have instructions like this.

Appreciate any help you can provide. Many thanks.

Best

NH
Title: Re: Docker Image for MC27
Post by: max096 on February 28, 2021, 12:38:34 pm
Dear Max

Is there a step by step guide using the QNAP GUI that I can use. I dont know how to use Linux commands to do this.

I managed to create the container but am unable to use VNC to get inside JRiver to configure. I get to the panel screen on port 52199 but without being able to configure import files or other settings.

And I am not able to log in via VNC server. Tried several times - get the message _connection closed unexpectedly". So not able to do anything.

I am obviously missing a trick because others seem to be able to use it.

Enclosed a sample from another software http://www.jthink.net/songkong/install_docker_qnap.jsp which even a Linux ignoramus like was able to install. I straightaway landed on the GUI of the app. Will be great to have instructions like this.

Appreciate any help you can provide. Many thanks.

Best

NH

There isnīt really a guide specifically for that. But since you are getting to the panel webui probably you can just instead of :52199 head to :5800 and if you allowed that port too you should get to the noVNC webgui where you can interact with jriver just as you would on a desktop.

I can help you explain things and hopefully we can figure it out. Not currently planning to make a guide specifically for the qnap gui though.
Title: Re: Docker Image for MC27
Post by: max096 on February 28, 2021, 01:33:34 pm
I wonīt be adding this into the image and instead make an issue on the baseimage or a pull request to get the change in. Just gonna take a bit longer.

Guess I lied about that. Itīs been a week the guy that maintains the baseimage didnīt write back. Im sure he will eventually. But since itīs just a little change I just put it in as is and overwrote the file. Give it half an hour to spit out all the images and the ENABLE_CJK_FONT option should work again without doing anything special.

Also updated the readme with a guide for running custom initialization scripts. Itīs fine for experimenting and quick fixing stuff (installing additional packages or whatever you want to do). But if you are making changes that fix things that could benefit other users of the image. It would be better if you can make me aware of it (here or gitlab issue), or make a merge request on gitlab.
Title: Re: Docker Image for MC27
Post by: NH on March 01, 2021, 10:57:23 am
There isnīt really a guide specifically for that. But since you are getting to the panel webui probably you can just instead of :52199 head to :5800 and if you allowed that port too you should get to the noVNC webgui where you can interact with jriver just as you would on a desktop.


No luck Max. Cant access any port. Also wrote to QNAP. They said to check the SSH setting which is already checked. Dont know what I am missing. So near yet so far!

Best

NH
Title: Re: Docker Image for MC27
Post by: max096 on March 01, 2021, 02:19:09 pm
No luck Max. Cant access any port. Also wrote to QNAP. They said to check the SSH setting which is already checked. Dont know what I am missing. So near yet so far!

Best

NH

Did you use host networking or bridge networking when you created the container? Any other details on what it is you did woud help too.

Generally, if you are using host networking you need to allow every single port you want to access from another PC on the firewall of your NAS. If you are using bridge networking you (normally) don't need to do this, but you would have had to pick port forwardings on container creation (normally you'd just forward 5800 to 5800 and so on and so forth, no reason to pick different ports unless one of them is already in use).

Did you already have jriver installed on your NAS before in another way? If yes maybe you already allowed port 52199 in your qnap firewall back then? Hence JRiver ports would be accessible and the others are not.

SSH settings won't get you anywhere. That seems completely unrelated to me. Not sure why qnap support would suggest that.
Title: Re: Docker Image for MC27
Post by: NH on March 06, 2021, 10:01:50 pm
Thank you very much Max. Your guidance pointed me in the right direction. I checked the port forwarding on the NAS, on the router, removed one conflict (52199 was forwarded to my Windows PC for the JRiver instance there), checked if my NAS is getting external connectivity. And it worked!! Many many thanks.

I see two links on the container - 52199 which connects to the panel and 5800 which connects to the web GUI of MC. The web GUI  and that makes it very easy. I was able to do te library settings and am able to connect to it via Gizmo pretty easily and works without any lag. In fact the connectivity between Gizmo and MC works better than on my PC.

Sharing some learnings and observations:

1. For showing the path on the NAS (volume from host) and connecting it to the mount point, I could connect only one folder. Eg /Media/Music to /data/music. I had one other folder /Media/Music Videos which when I tried to link to the same mount point /data/music it didnt work. I am sure there is a way to connect more than one folder.

2. I have an additional hard disk containing music files connected to the NAS. On windows, I was able to add this as a location in the library by naming it as a network location eg. T: or V:. I am not able to see that in the volume from host. Am I missing something?

3. I could only do bridge networking. With host it wont allow me to. In bridge networking, I chose static IP, didnt choose DHCP because it said that the NAS IP address would have to change. Is that true? I dont know what would have happened if I had chosen DHCP instead.

4. For the static IP to work, I had to use a different IP address than that of the NAS eg. x.x.x.22 when the NAS was x.x.x.21. In fact when I tried to give it the same IP address it hanged (understandably) or for some others it warned me that the IP address was already in use. I presume this is how it is meant to be. Will be good to mention in the instructions. Though I was surprised to know that the container gets a different IP address, like a different machine or network connection. Does this allow me to access my MC from outside the network also? Will try it out. Technically it should since I have a static IP enabled on my router.

5. The size of the web page in the web GUI is smaller in MC 25. I tried it with MC 27 also where it was covering the whole window. I presume there is a setting somewhere to change it. I am using my MC 25 license.

Many thanks Max, Jatzoo, Scobie for your guidance. If you (or any other users) have any reactions to the above will appreciate it.

Many thanks all once again.

Best

NH
Title: Re: Docker Image for MC27
Post by: max096 on March 07, 2021, 09:05:16 pm
1. For showing the path on the NAS (volume from host) and connecting it to the mount point, I could connect only one folder. Eg /Media/Music to /data/music. I had one other folder /Media/Music Videos which when I tried to link to the same mount point /data/music it didnt work. I am sure there is a way to connect more than one folder.

You can only mount one thing to /data/music if you need to mount multiple use different mount points. /data/video /data/music2. Does not matter where you mount it to really /data/music was just a suggestion for one of the mounts is all.

2. I have an additional hard disk containing music files connected to the NAS. On windows, I was able to add this as a location in the library by naming it as a network location eg. T: or V:. I am not able to see that in the volume from host. Am I missing something?

Not sure what you did on Windows in JRiver. You did not mount the drive in windows, but set it up in JRiver? If it did just 'find it' on windows it might not do that when you are using bridge networking. As network discovery is the one thing that's kind of flaky there. But when you manually enter it it should work. It just won't find it by itself.

3. I could only do bridge networking. With host it wont allow me to. In bridge networking, I chose static IP, didnt choose DHCP because it said that the NAS IP address would have to change. Is that true? I dont know what would have happened if I had chosen DHCP instead.

I don't think it would change the IP of your NAS, but the IP of your docker container won't stay the same after reboots as it will ask your router for an IP address. You can setup what device should get what IP address on your router too. And then you will essentially get a static IP. For the most part you should either setup static IPs outside of the DHCP range your router hands out or manage IPs on your router. Most of the time in small home networks this is not an issue. But if you end up in a situation where your router gives out an IP of lets say 192.168.1.100 and then you startup something that has it's static IP set to exactly that. It just won't work.

4. For the static IP to work, I had to use a different IP address than that of the NAS eg. x.x.x.22 when the NAS was x.x.x.21. In fact when I tried to give it the same IP address it hanged (understandably) or for some others it warned me that the IP address was already in use. I presume this is how it is meant to be. Will be good to mention in the instructions. Though I was surprised to know that the container gets a different IP address, like a different machine or network connection. Does this allow me to access my MC from outside the network also? Will try it out. Technically it should since I have a static IP enabled on my router.

No it won't make anything accessible outside of your network. You need to do port forwarding on your router with the ports you want to access. The IP changing probably means QNAP created a VM for docker. Could not tell you wether it created one for docker or it created one for this specific container. Technically, yes ofc you can host docker container on your host directly. But most of the time that's not really done. Im running proxmox on my NAS and i also created a seperate VM for docker and some other stuff. Imo, if you have a kind of "do it all" server box like this. You don't really want to install all that much on the host OS. Just because if it breaks that's bad. But if you break the VM it's much less bad. You might even have a snapshot to just go back to a working state. A lot easier to do snapshots with VMs than with an OS that runs on bear metal.

5. The size of the web page in the web GUI is smaller in MC 25. I tried it with MC 27 also where it was covering the whole window. I presume there is a setting somewhere to change it. I am using my MC 25 license.
You mean the size of :5800 web UI? You can change that with environment variables 'DISPLAY_WIDTH' and 'DISPLAY_HEIGHT' but you have to do this on container creation. It's totally fine to destroy and re-create the container as long as you keep the directory around you mouned to /config you should not even notice it ever disappeared.
Title: Re: Docker Image for MC27
Post by: NH on March 08, 2021, 11:03:20 am
Thanks much Max for your detailed answers!! Very clear.

Best

NH
Title: Re: Docker Image for MC27
Post by: bob on March 18, 2021, 08:37:39 pm
Just a heads-up, the next build will have a few executable changes.
The launcher mc27 will be removed from the /usr/bin/ dir and moved to the app installation dir (/usr/lib/jriver/Media Center xx).
There will be new binary in the app installation directory called PackageInstaller.
There will be a symlink in the app installation directory to the mediacenter27 executable in /usr/bin/
Title: Re: Docker Image for MC27
Post by: NH on March 20, 2021, 06:45:01 am
You can only mount one thing to /data/music if you need to mount multiple use different mount points. /data/video /data/music2. Does not matter where you mount it to really /data/music was just a suggestion for one of the mounts is all.

Not sure what you did on Windows in JRiver. You did not mount the drive in windows, but set it up in JRiver? If it did just 'find it' on windows it might not do that when you are using bridge networking. As network discovery is the one thing that's kind of flaky there. But when you manually enter it it should work. It just won't find it by itself.

Dear Max

It does not allow me to specify the path in the Volume from host. It does not show me the path to the external disks connected. Only to shared folders which are on the NAS. Any suggestions on how one could enable this?

Best

NH
Title: Re: Docker Image for MC27
Post by: max096 on March 27, 2021, 12:24:09 pm
Dear Max

It does not allow me to specify the path in the Volume from host. It does not show me the path to the external disks connected. Only to shared folders which are on the NAS. Any suggestions on how one could enable this?

Best

NH

Looks like you cannot do it from the UI. You have to use docker CLI from the terminal.
https://forum.qnap.com/viewtopic.php?t=138410

Also, looking at this, my assumption that qnap creates a VM for docker is wrong, otherwise you would not be able to see the /mnt path of your host at all.
Title: Re: Docker Image for MC27
Post by: jedx02 on March 27, 2021, 01:10:54 pm
Thank you so much for making this available.  I have been looking for months for a good podcast catcher for my synology and was pleased to realize that MC on docker is great for the task.

I' ve updated my Docker image to now also build images for MediaCenter 27.

More information about the image can be found in the readme on gitlab or dockerhub

- gitlab: https://gitlab.com/shiomax/jrivermc-docker
- dockerhub: https://hub.docker.com/r/shiomax/jrivermc27

This time around no problems with licensing either.

If you are upgrading from an older MediaCenter version (24, 25 or 26) remember to make a library backup before attempting to upgrade. Ideally, also backup the directory you linked to /config after having stopped or removed the container you are currently running. Major JRiver version changes will not retain anything you will need to restore from a library backup and reactivate your license.
Title: Re: Docker Image for MC27
Post by: NH on March 31, 2021, 11:53:18 am
Looks like you cannot do it from the UI. You have to use docker CLI from the terminal.
https://forum.qnap.com/viewtopic.php?t=138410

Dear Max

I tried the following:

1. Raised a ticket with QNAP as to why the external hard disk is not visible as a share within docker. Its a feature limitation now, so nothing can be done immediately. If its a common problem they might take it up but that's a long shot.
2. I tried to follow the link above and copied and entered the commands through putty. I am sure I must have done something wrong since always got "command not found". Will be great if you could share the exact command that I need to enter in the terminal through putty. Some details as follows:
- Name of my hard disk is Seagate Backup Plus Drive and it is seen like that in file station and  on the network
3. I am using your MC24 image
4. Do the commands have to be entered via putty or via the terminal window in the docker container

Many thanks

Best

NH
Title: Re: Docker Image for MC27
Post by: max096 on April 01, 2021, 12:06:11 pm
Dear Max

I tried the following:

1. Raised a ticket with QNAP as to why the external hard disk is not visible as a share within docker. Its a feature limitation now, so nothing can be done immediately. If its a common problem they might take it up but that's a long shot.
2. I tried to follow the link above and copied and entered the commands through putty. I am sure I must have done something wrong since always got "command not found". Will be great if you could share the exact command that I need to enter in the terminal through putty. Some details as follows:
- Name of my hard disk is Seagate Backup Plus Drive and it is seen like that in file station and  on the network
3. I am using your MC24 image
4. Do the commands have to be entered via putty or via the terminal window in the docker container

Many thanks

Best

NH

Through putty try to type docker and see if it finds that command at all. If it does not you probably need to add it to the path variable. If you are logged in as root /root/.bashrc otherwise ~/.bashrc.

Assuming your docker executeable is where they say it is in this thread

https://forum.qnap.com/viewtopic.php?t=152023

You add this line to the bashrc.

Code: [Select]
PATH=/share/CACHEDEV1_DATA/.qpkg/container-station/bin/docker:$PATH

Then when you log out and back in. You should be able to use the docker command without typing out the entier path all the time.

Then you can run one of the docker run commands from the readme. Your disk should be somewhere in /mnt hopefully and wherever you want the /config dir to be on your NAS. You have to put those two paths (or more if you need more media locations) into the docker run command.
Title: Re: Docker Image for MC27auto
Post by: NH on April 03, 2021, 08:19:08 am
Thanks much Max.

I followed your instructions to enable the HDD to become accessible. Then I installed the docker with the following commands:

docker run -d \
    --name=jrivermc27 \
    --net=host \
    --restart=always \
    -v config:/config:rw \
    -v /share/Media/Music:/data/music:rw \
    -v /share/external/DEV3601_2:/data/musichdd:rw \
    -e VNC_PASSWORD=12345 \
    shiomax/jrivermc27

The container started. I got into JRiver. And could add the folders data/music and data/musichdd to file>library/import>configure auto import.

Selected the folders data/music and data/musichdd to import from.

However no files are being imported into the library.

I am able to access other libraries on the network eg minimserver in the library and that library loads. But doesnt play any file.

I had an instance of jriver mc24 also pointed to data/music. Thinking that that could create a conflict, I removed that also, but still no files are being imported.

What am I missing?

Best

NH
Title: Re: Docker Image for MC27auto
Post by: max096 on April 03, 2021, 09:52:32 am
Thanks much Max.

I followed your instructions to enable the HDD to become accessible. Then I installed the docker with the following commands:

docker run -d \
    --name=jrivermc27 \
    --net=host \
    --restart=always \
    -v config:/config:rw \
    -v /share/Media/Music:/data/music:rw \
    -v /share/external/DEV3601_2:/data/musichdd:rw \
    -e VNC_PASSWORD=12345 \
    shiomax/jrivermc27

The container started. I got into JRiver. And could add the folders data/music and data/musichdd to file>library/import>configure auto import.

Selected the folders data/music and data/musichdd to import from.

However no files are being imported into the library.

I am able to access other libraries on the network eg minimserver in the library and that library loads. But doesnt play any file.

I had an instance of jriver mc24 also pointed to data/music. Thinking that that could create a conflict, I removed that also, but still no files are being imported.

What am I missing?

Best

NH

Are you sure you mounted the right paths? Go into your docker console to /data/music and /data/musichdd and see if the files are really there.

You probably get into the container from the qnap gui. Otherwise 'docker ps' to find the container id and 'docker exec -it <id> /bin/bash'. Then go to those directories and see if there are files there.
Title: Re: Docker Image for MC27
Post by: NH on April 03, 2021, 02:17:23 pm
I dont think the files are there.

I tried doing an install via the QNAP GUI and even for that I am not able to access the files. What could be the issue? It had worked automatically when I had installed it via the GUI earlier where I had to select the folders so there was no issue of making any mistake.

I changed the USER_ID and GROUP_ID to 0 which is what I found it to be for admin in case that was to be the issue - I read in one of the other posts of MAWI - hence.

BTW - my files are in the folder Media/Music which is in the root folder of my NAS which is called NH68. Do I need to add the NAS name? Earlier I had mentioned the source folder as share/Media/Music which I changed when I saw that in the installation via the GUI, it takes /Media/Music only without the "share".

Also while I use host - then I go into settings and change it to bridge after installation because host doesnt work. Could that be an issue? I do that because I had another instance of MC27 also running which had access to the ports.

It has to be some error in pointing the folder location to the docker. Posting the commands I used:

docker run -d \
    --name=jrivermc24 \
    --net=host \
    --restart=always \
    -v config:/config:rw \
    -v /Media/Music:/data/music:rw \
    -v /external/DEV3601_2:/data/musichdd:rw \
    -e VNC_PASSWORD=12345 \
    -e USER_ID=0 \
    -e GROUP_ID=0 \
    shiomax/jrivermc24

Best

NH

Title: Re: Docker Image for MC27
Post by: NH on April 03, 2021, 02:22:37 pm
Dear MAx

I also see an error message "failed to commit changes to dconf: failed to execute child process: "dbus-launch" - no such file or directory

Dont know what that means

Best

NH
Title: Re: Docker Image for MC27
Post by: max096 on April 03, 2021, 03:59:37 pm
You are sure those directories "/external/DEV3601_2", "/Media/Music" are correct? Double check that. Just type "ls /external/DEV3601_2" in putty where you created the container too. I still think there should be something wrong with those otherwise there at least would be files.

If itīs correct. Can you post the output of "docker info" and then "docker inspect <id of the container you created>"? Again you get the container id from "docker ps". Not sure how qnap allowed you to change host networking to bridge networking after the fact, because that requires re-creation of the container. Maybe, it did do that and did remove the mount again.

Docker inspect will print out all the settings including environment variables. So if you set your password with -e VNC_PASSWORD it will be in there too. Just change that part if it wasnīt 12345.

I also see an error message "failed to commit changes to dconf: failed to execute child process: "dbus-launch" - no such file or directory

Dconf is some settings thing baked into gnome. The container does not use gnome and does not have gsettings/dconf. But it uses nautilus as a file explorer (default file explorer of gnome). So every time you open a file explorer from jriver it opens nautilus and it complains about the lack of those settings. Not really an issue as long as nautilus continues to work.

I changed the USER_ID and GROUP_ID to 0 which is what I found it to be for admin in case that was to be the issue - I read in one of the other posts of MAWI - hence.

Thats not the issue though. It might be later but when you log into the container you are always root and have access to the files either way. So if you donīt find them with ls there just is nothing there.
Title: Re: Docker Image for MC27
Post by: danrien on April 03, 2021, 05:04:29 pm
Brilliant stuff!
Title: Re: Docker Image for MC27
Post by: NH on April 03, 2021, 10:09:12 pm
Quote
You are sure those directories "/external/DEV3601_2", "/Media/Music" are correct? Double check that. Just type "ls /external/DEV3601_2" in putty where you created the container too. I still think there should be something wrong with those otherwise there at least would be files.   

1. When I type "ls" where I land up after logging into putty (and pressing Q and then Y to land in the shell environment, I see the following files - index_default.html.

2. "ls -a" shows
./             .bash_logout   .BitTornado@           index_default.html  .vimrc
../            .bash_profile  .buzzer_warnning.conf  .profile
.bash_history  .bashrc        .docker/               .ssh@

3. If I go one level up using "cd /" and do "ls" I see the following:
1        etc/          lib/         mnt/       proc/  share/
bin/     external/     lib64@       new_root/  root/  sys/
config/  flashfs_tmp/  linuxrc@     opt/       rpc/   tmp/
data/    hd_root_tmp@  lost+found/  path/      run/   usr/
dev/     home/         Media/       php.ini@   sbin/  var/

4. If I then go to Media by using "cd Media/Music" and use "ls" there are no files. This is what I see.
./  ../

5. Similarly there are no files in external/DEV3601_2.

However all my media files are there - I can see them in file station under Media/Music and am able to access them - directly and via minimserver.


Quote
If itīs correct. Can you post the output of "docker info" and then "docker inspect <id of the container you created>"? Again you get the container id from "docker ps". Not sure how qnap allowed you to change host networking to bridge networking after the fact, because that requires re-creation of the container. Maybe, it did do that and did remove the mount again.
Code: [Select]
Docker Info output
Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 2
  Running: 2
  Paused: 0
  Stopped: 0
 Images: 8
 Server Version: 20.10.3
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay qnet
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 269548fa27e0089a8b8278fc4fc781d7f65a939b
 runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.14.24-qnap
 Operating System: QTS 4.5.2 (20210302)
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 3.769GiB
 Name: NH68
 ID: 2BSK:WU2A:ZRFQ:GN5B:NU3K:P75Y:QNY3:XFC6:QVW6:BTWR:3CNI:4SUO
 Docker Root Dir: /share/CACHEDEV1_DATA/Container/container-station-data/lib/docker
 Debug Mode: true
  File Descriptors: 95
  Goroutines: 110
  System Time: 2021-04-04T08:22:47.245962601+05:30
  EventsListeners: 1
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Default Address Pools:
   Base: 172.29.0.0/16, Size: 22

I recreated a new container MC24. This time I installed from the QNAP GUI, selected networking as NAT which was default and selected the folders Media/Music from within the GUI. Used mnt/music as the mount point. JRiver opens and when I try to access mnt/music - I see a message - file cannot be opened. Have attached the screenshot.

Code: [Select]
]
Docker inspect output below:

    {
        "Id": "3f17ff3da845ce02dbae9318edc7d9aa2af1da17c36912cbbbd695fa01b94bc2",
        "Created": "2021-04-04T02:25:53.556719013Z",
        "Path": "/init",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 1470,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-04-04T02:25:56.25846862Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:3f268ec335cb3ed7981030a5c67ddfb58fbe68aa8733806f88fa3fd4ed44685d",
        "ResolvConfPath": "/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/containers/3f17ff3da845ce02dbae9318edc7d9aa2af1da17c36912cbbbd695fa01b94bc2/resolv.conf",
        "HostnamePath": "/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/containers/3f17ff3da845ce02dbae9318edc7d9aa2af1da17c36912cbbbd695fa01b94bc2/hostname",
        "HostsPath": "/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/containers/3f17ff3da845ce02dbae9318edc7d9aa2af1da17c36912cbbbd695fa01b94bc2/hosts",
        "LogPath": "/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/containers/3f17ff3da845ce02dbae9318edc7d9aa2af1da17c36912cbbbd695fa01b94bc2/3f17ff3da845ce02dbae9318edc7d9aa2af1da17c36912cbbbd695fa01b94bc2-json.log",
        "Name": "/jrivermc24-1",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/share/Media/Music:/mnt/music:rw"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {
                    "max-file": "10",
                    "max-size": "10m"
                }
            },
            "NetworkMode": "bridge",
            "PortBindings": {
                "1900/udp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": ""
                    }
                ],
                "52100/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": ""
                    }
                ],
                "52101/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": ""
                    }
                ],
                "52199/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": ""
                    }
                ],
                "5800/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": ""
                    }
                ],
                "5900/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": ""
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": [],
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": true,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": null,
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": [
                {
                    "Name": "nofile",
                    "Hard": 64000,
                    "Soft": 64000
                }
            ],
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/2d0fe77eced5fa70b7c18223f10ac96deb289ebabc42df4eaada27164b685ee6-init/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/c7edb4d9658ee9fbfc798d1cdf7e55975e312d49c173481356ada5ab4d523abc/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/e4a3f54aadac061e4398bc0fdfd7a28d900047863340e8fc22db0fcb1c3eea9e/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/14ec145a54c2b939c67a60537af9dc848c9ae7db5cba0672bb1cd1e189302b53/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/9f3dfbd2422fd96a9e5ce3fd0152f3e66303c230b79b65afc63a2a41eaa8f141/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/2fdf18cce2c3f60f9bcd568c85bc3d81653e0301380f111c9a97a61e1bef9149/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/99340434e940f96255fe30f596169dd950576f1ceeea856591159a7ef6205fc8/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/fb6b4cb3db9e5554bb4493163deaa57d1837e31a90b474175225b8ee797407ec/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/f71068ebe6767464d8ef9a22171eedfafbfe7fe72c95062c91ae1e7adb2ea1b5/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/c9cc87c50afd0255a36e7a084cae3ee81d3ee277ed42d7b11cbe2c3f6c629a51/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/dc785e96314ed2717ce4494f78fd1edd683b1239f9e556586a68a3eec4c1c779/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/93bfdba1797731b2fb206b26a857dbd5203737458fab34ed0b30754a600e21f6/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/099d2791f5fb9e38c95c2ac749e7895bcb3659a8850a27288f053fc2870e148e/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/ac7a7bd878ffe8f9c08f4ca6c6de2f693c4282b25092895d431d926aff864bd5/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/20daaf98c04ee19884dd817467a0c48ab836dd771bcbe54aee8f43f51f11ae10/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/39cb3a64cf51df1f5a5b7bf400e764e86477e037882143d74639f58c43ee742f/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/889511b41a6d123cd0743077a8e0daff830934b156c7bf26d778fb9f076cbce4/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/814906b615999315871abd7091589aa1c4fde4fddb29d5695982d5ab7f0bbcca/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/bd2be29a730f7108dd62ccb016042a7b6316e66e7408611b735a657b674f9965/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/ee310c11eb820a96f8e3435bb1c06621ee0920af912bd6bb6671d3c89aebec6e/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/82336d1d531ce140cb1918cc2054ca6d33f3e875d375e8139d1e3f93159100bf/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/7c951c69998c2b49fab772736465be71e690ffe02d9f2bbb04e2cedba336cc9b/diff:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/43b328be3120b2466ea7cedb849f4de06060b8fd9e537ee2356360945ece481a/diff",
                "MergedDir": "/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/2d0fe77eced5fa70b7c18223f10ac96deb289ebabc42df4eaada27164b685ee6/merged",
                "UpperDir": "/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/2d0fe77eced5fa70b7c18223f10ac96deb289ebabc42df4eaada27164b685ee6/diff",
                "WorkDir": "/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/overlay2/2d0fe77eced5fa70b7c18223f10ac96deb289ebabc42df4eaada27164b685ee6/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/share/Media/Music",
                "Destination": "/mnt/music",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "volume",
                "Name": "92935a0ce0354fa994243663fc0e3bf235cce85be3e3d02d8f0867be5ad4a8f7",
                "Source": "/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/volumes/92935a0ce0354fa994243663fc0e3bf235cce85be3e3d02d8f0867be5ad4a8f7/_data",
                "Destination": "/config",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],
        "Config": {
            "Hostname": "3f17ff3da845",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "1900/udp": {},
                "52100/tcp": {},
                "52101/tcp": {},
                "52199/tcp": {},
                "5800/tcp": {},
                "5900/tcp": {}
            },
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": false,
            "Env": [
                "APP_NAME=JRiver MediaCenter 24",
                "APP_USER=app",
                "DISPLAY=:0",
                "DISPLAY_HEIGHT=768",
                "DISPLAY_WIDTH=1280",
                "ENABLE_SIGNATURE=1",
                "GROUP_ID=1000",
                "KEEP_APP_RUNNING=1",
                "MAXIMIZE_POPUPS=0",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "S6_BEHAVIOUR_IF_STAGE2_FAILS=3",
                "S6_KILL_GRACETIME=8000",
                "S6_SERVICE_DEPS=1",
                "USER_ID=1000",
                "XDG_CACHE_HOME=/config/xdg/cache",
                "XDG_CONFIG_HOME=/config/xdg/config",
                "XDG_DATA_HOME=/config/xdg/data",
                "XDG_RUNTIME_DIR=/tmp/run/user/app"
            ],
            "Cmd": [
                "/init"
            ],
            "Image": "shiomax/jrivermc24:latest",
            "Volumes": {
                "/config": {}
            },
            "WorkingDir": "/tmp",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "com.qnap.qcs.gpu": "False",
                "com.qnap.qcs.network.mode": "nat",
                "org.label-schema.description": "A minimal docker baseimage to ease creation of X graphical application containers",
                "org.label-schema.name": "baseimage-gui",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vcs-url": "https://github.com/jlesage/docker-baseimage-gui",
                "org.label-schema.version": "3.5.3"
            }
        },
        "NetworkSettings": {
            "Bridge": "lxcbr0",
            "SandboxID": "668b3935d139e77392c3882986330b8e18cd794163bf51b8dede6272e4db0bd5",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "1900/udp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "49153"
                    }
                ],
                "52100/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "49155"
                    }
                ],
                "52101/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "49154"
                    }
                ],
                "52199/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "49153"
                    }
                ],
                "5800/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "49157"
                    }
                ],
                "5900/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "49156"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/668b3935d139",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "9aa21f320591ecf23193f40bc0692f994a606ef0e13d566dffc7178289b3d83b",
            "Gateway": "10.0.3.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "10.0.3.3",
            "IPPrefixLen": 24,
            "IPv6Gateway": "",
            "MacAddress": "02:42:0a:00:03:03",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "e8e0126c28d4f3f6a294d8583ea2555df44363aa363b9f0b391f0ca895a4fd06",
                    "EndpointID": "9aa21f320591ecf23193f40bc0692f994a606ef0e13d566dffc7178289b3d83b",
                    "Gateway": "10.0.3.1",
                    "IPAddress": "10.0.3.3",
                    "IPPrefixLen": 24,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:0a:00:03:03",
                    "DriverOpts": null
                }
            }
        }
    }
]

Quote
Docker inspect will print out all the settings including environment variables. So if you set your password with -e VNC_PASSWORD it will be in there too. Just change that part if it wasnīt 12345.

It's default only.

Many thanks for all this deep dive! I have learnt a few linux commands and am reminded of the MS-DOS commands which I had learnt in the floppy disk days!

Best

NH
Title: Re: Docker Image for MC27
Post by: NH on April 03, 2021, 10:17:01 pm
Apologies for the very very long post that this created..Will make it harder for users to scroll.

However couldnt find another way of making it more elegant. eg. even if you post as an attachment it still is seen on the full screen. If there is another method to make such outputs more compact would love to use those.

Best

NH
Title: Re: Docker Image for MC27
Post by: JimH on April 04, 2021, 07:14:40 am
Apologies for the very very long post that this created..Will make it harder for users to scroll.

However couldnt find another way of making it more elegant. eg. even if you post as an attachment it still is seen on the full screen. If there is another method to make such outputs more compact would love to use those.
I added code tags.
[ code ]
and
[ /code ]
but without the spaces.
Title: Re: Docker Image for MC27
Post by: NH on April 04, 2021, 08:30:22 am
Thanks much Jim... Nice of you. Appreciate it.
Title: Re: Docker Image for MC27
Post by: max096 on April 04, 2021, 09:54:31 am
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/share/Media/Music",
                "Destination": "/mnt/music",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "volume",
                "Name": "92935a0ce0354fa994243663fc0e3bf235cce85be3e3d02d8f0867be5ad4a8f7",
                "Source": "/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/volumes/92935a0ce0354fa994243663fc0e3bf235cce85be3e3d02d8f0867be5ad4a8f7/_data",
                "Destination": "/config",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],

Looking at this part it mounted '/share/Media/Music' to '/mnt/music'. So itīs not actually '/Media/Music' then.

Not sure about external. But you should find both mounts when you type 'mount'. Maybe it comes up right away with 'mount | grep external'.

After you found where the files are. You can find out what user they belong to and use that as UID for the container as explained here https://gitlab.com/shiomax/jrivermc-docker#permission-problems. Ofc, using 0 for root should also work.

You should probably not be changing to bridge networking afterwards and use the right command right away.
Title: Re: Docker Image for MC27
Post by: NH on April 04, 2021, 01:21:45 pm
Quote
Looking at this part it mounted '/share/Media/Music' to '/mnt/music'. So itīs not actually '/Media/Music' then.

1. I am not able to locate the path to Media/Music at all. The path or permissions seem to have got bungled up perhaps. Is there a way to find where it is? I have pasted below the directory structure that I found.

Code: [Select]
 
mount
none on /new_root type tmpfs (rw,mode=0755,size=296960k)
/proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw)
sysfs on /sys type sysfs (rw)
tmpfs on /tmp type tmpfs (rw,size=64M)
tmpfs on /dev/shm type tmpfs (rw)
tmpfs on /share type tmpfs (rw,size=16M)
/dev/sdc5 on /mnt/boot_config type ext2 (rw)
tmpfs on /mnt/snapshot/export type tmpfs (rw,size=16M)
/dev/md9 on /mnt/HDA_ROOT type ext3 (rw,data=ordered)
cgroup_root on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/cgroup/memory type cgroup (rw,memory)
/dev/mapper/cachedev1 on /share/CACHEDEV1_DATA type ext4 (rw,usrjquota=aquota.us                                                                                                                                                             er,jqfmt=vfsv0,user_xattr,data=ordered,data_err=abort,delalloc,nopriv,nodiscard,                                                                                                                                                             acl)
/dev/sde2 on /share/external/DEV3601_2 type ufsd (rw,iocharset=utf8,dmask=0000,f                                                                                                                                                             mask=0111,force)
cpu on /sys/fs/cgroup/cpu type cgroup (rw,cpu)
/dev/md13 on /mnt/ext type ext4 (rw,data=ordered,barrier=1,nodelalloc)
tmpfs on /share/CACHEDEV1_DATA/.samba/lock/msg.lock type tmpfs (rw,size=48M)
tmpfs on /mnt/ext/opt/samba/private/msg.sock type tmpfs (rw,size=16M)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,none,name=systemd)
hdsfusemnt on /share/CACHEDEV1_DATA/.qpkg/HD_Station/share type fuse.hdsfusemnt                                                                                                                                                              (rw,nosuid,nodev,allow_other)
/share/CACHEDEV1_DATA/.qpkg/container-station/kernel-module on /lib/modules/4.14                                                                                                                                                             .24-qnap/container-station type none (rw,bind)
/tmp on /share/CACHEDEV1_DATA/.qpkg/MediaSignPlayer/CodexPackExt/tmp type none (                                                                                                                                                             rw,bind)
hdsfusemnt on /share/CACHEDEV1_DATA/.qpkg/MediaSignPlayer/CodexPackExt/share typ                                                                                                                                                             e fuse.hdsfusemnt (rw,nosuid,nodev,allow_other)
 cd Media /
-sh: cd: Media: No such file or directory
[~] # ls
index_default.html
[~] # ls -a
./             .bash_logout   .BitTornado@           index_default.html  .vimrc
../            .bash_profile  .buzzer_warnning.conf  .profile
.bash_history  .bashrc        .docker/               .ssh@
[~] # cd /
[/] # ls
1        etc/          lib/         mnt/       proc/  share/
bin/     external/     lib64@       new_root/  root/  sys/
config/  flashfs_tmp/  linuxrc@     opt/       rpc/   tmp/
data/    hd_root_tmp@  lost+found/  path/      run/   usr/
dev/     home/         Media/       php.ini@   sbin/  var/
[/] # cd share /
[/share] # ls -a
./               HDF_DATA/  HDR_DATA/     Multimedia@
../              HDG_DATA/  HDS_DATA/     NH Work@
CACHEDEV1_DATA/  HDH_DATA/  HDT_DATA/     P@
config@          HDI_DATA/  HDU_DATA/     PlexData@
Container@       HDJ_DATA/  HDV_DATA/     .proftpd.fifo/
Download@        HDK_DATA/  HDW_DATA/     Public@
external/        HDL_DATA/  HDX_DATA/     Seagate Backup Plus Drive@
HDA_DATA/        HDM_DATA/  HDY_DATA/     S@
HDB_DATA/        HDN_DATA/  HDZ_DATA/     V@
HDC_DATA/        HDO_DATA/  homes@        Web@
HDD_DATA/        HDP_DATA/  Media@
HDE_DATA/        HDQ_DATA/  MinimServer@
[/share] # cd external /
[/share/external] # ls -a
./  ../  DEV3601_2/  sda/  sdb/  sdc/  sdd/  sde/  sdf/  sdg/  sdh/  sdi/  sdj/  sdk/  sdl/  sdm/  sdn/  sdo/  sdp/  sdq/  sdr/  sds/  sdt/  sdu/  sdv/  sdw/  sdx/  sdy/  sdz/
[/share/external] # cd DEV3601_2
[/share/external/DEV3601_2] # ls
Music DY/  $RECYCLE.BIN/  System Volume Information/
[/share/external/DEV3601_2] # cd /
[/] # ls
1  bin/  config/  data/  dev/  etc/  external/  flashfs_tmp/  hd_root_tmp@  home/  lib/  lib64@  linuxrc@  lost+found/  Media/  mnt/  new_root/  opt/  path/  php.ini@  proc/  root/  rpc/  run/  sbin/  share/  sys/  tmp/  usr/  var/
[/] # cd Media /
[/Media] # ls
Music/
[/Media/Music] # ls
[/Media/Music] # ls -a
./  ../

Quote
Not sure about external. But you should find both mounts when you type 'mount'. Maybe it comes up right away with 'mount | grep external'.

I could find the external drive as you can see above.

Quote
After you found where the files are. You can find out what user they belong to and use that as UID for the container as explained here https://gitlab.com/shiomax/jrivermc-docker#permission-problems. Ofc, using 0 for root should also work.

I have not tried this as of now.

Quote
You should probably not be changing to bridge networking afterwards and use the right command right away.
. Yes, am not doing that.

However here is what I found. I can see the files in the shared Multimedia folder. As such I loaded MC27 from the GUI using bridge and used the Multimedia folder and I was able to see the files within that when I launched JRiver. So one solution is to move all my music files to the Multimedia folder from the Media folder. This still does not address the external drive access.

So I tried to load MC24 via putty using your instructions adding the Multimedia folder instead of Media and using the bridge method. However its giving me some strange error commands which I did not see earlier. Pasting the error messages here. Have I made a mistake in the syntax?

Code: [Select]
docker pull shiomax/jrivermc24
Using default tag: latest
latest: Pulling from shiomax/jrivermc24
Digest: sha256:b713ae0d65275d3ad5e25da995b27132012eaee0c0ce3cd0b64005e3a3763b4f
Status: Image is up to date for shiomax/jrivermc24:latest
docker.io/shiomax/jrivermc24:latest
[/] # docker run -d \
>     --name=jrivermc26 \
>     --net=bridge \
>     --restart=always \
>     --mac-address=ed:e8:60:2d:65:c1 \
>     -p 5800:5800 \
>     -p 5900:5900 \
>     -p 52199:52199 \
>     -p 1900:1900/udp \
docker: invalid reference format.
See 'docker run --help'.
[/] #     -v config:/config:rw \
>     -v /share/Multimedia/Music:/data/music:rw \
>     -v /external/DEV3601_2:/data/musichdd:rw \
>     -e VNC_PASSWORD=12345 \
>     shiomax/jrivermc26
-sh: -v: command not found

Maybe I should remove the container station and install it again to restore defaults which might have got changed.

Best

NH
Title: Re: Docker Image for MC27
Post by: max096 on April 04, 2021, 01:44:53 pm
It interpreted it as multiple commands so you got something wrong with your formatting. Not a docker or container station issue.

Code: [Select]
docker run -d \
--name=jrivermc26 \
--net=bridge \
--restart=always \
--mac-address=ed:e8:60:2d:65:c1 \
-p 5820:5800 \
-p 5920:5900 \
-p 52299:52199 \
-p 1901:1900/udp \
-v config:/config:rw \
-v /share/Multimedia/Music:/data/music:rw \
-v /external/DEV3601_2:/data/musichdd:rw \
-e VNC_PASSWORD=12345 \
shiomax/jrivermc26

This looks fine. Just make sure you only have line breaks directly after the \ and no spaces between \ and the line break.

Also according to what you just wrote your share is mounted to

Code: [Select]
/dev/sde2 on /share/external/DEV3601_2 type ufsd (rw,iocharset=utf8,dmask=0000,fmask=0111,force)

So "/share/external/DEV3601_2", but you put "/external/DEV3601_2" into your command.

The other thing is you should also put the config directory somewhere, where you can find it again. Currently, with that command it gets created whereever you are when you run the command. Or you remove that line (for testing you donīt need it). Itīs purpose is so that whatever you did in JRiver gets saved there and so if you use that same config directory for another container, it will remember your imports, playlists and so forth even through container re-creation. If you change the version of the container you want to re-use the same config directory. Or you start from scratch.

Id say for later. Make a directory somewhere, where you can find it again. For instance "<somewhere>/docker/jriver" in that folder create a file 'start.sh' and folder 'config'.

Put this into the 'start.sh' file
Code: [Select]
#!/usr/bin/env bash

# Remove container in case it currently exists
docker rm -f jrivermc26

# Start new container
docker run -d \
--name=jrivermc26 \
--net=bridge \
--restart=always \
--mac-address=ed:e8:60:2d:65:c1 \
-p 5801:5800 \
-p 5901:5900 \
-p 52200:52199 \
-p 1901:1900/udp \
-v <somewhere>/docker/jriver:/config:rw \
-v /share/Multimedia/Music:/data/music:rw \
-v /share/external/DEV3601_2:/data/musichdd:rw \
-e USER_ID=0 \
-e GROUP_ID=0 \
-e VNC_PASSWORD=12345 \
shiomax/jrivermc26

The left ports you adjust to whatever you need in case you need something other than the default ports. And you put the path in where the config directory is.

Then you save that as is. Run 'chmod +x start.sh' (only needed once) to make it executeable and then whenever you need to re-deploy or change something, you edit that file and run './start.sh' inside that folder. Should be a bit easier to manage in the long run than keeping track of this entier command whenever you need to do something to it.

Replace <somewhere> with some path that you can access from another PC so you can edit it without using the terminal from there. Im guessing that will be easier for you than using vim or nano to edit it.
Title: Re: Docker Image for MC27
Post by: NH on April 04, 2021, 01:50:49 pm
Thanks. Will check that.

BTW, any suggestions on how I can locate the path to my folder Media/Music? It's a mystery. How could it have changed places when I can see it exactly in the File Station.
Title: Re: Docker Image for MC27
Post by: HaWi on April 04, 2021, 02:37:48 pm
I don't know about QNAP but on my Synology NAS all shared folder paths include the volume name in the beginning e.g. /volume1/music. Some file browser apps on various OS's possibly may or may not include that and display the path as /music/.
If you ssh into your NAS and change directories until you land in your music folder then the correct path will be right in the terminal prompt.
Title: Re: Docker Image for MC27
Post by: max096 on April 04, 2021, 03:01:38 pm
Thanks. Will check that.

BTW, any suggestions on how I can locate the path to my folder Media/Music? It's a mystery. How could it have changed places when I can see it exactly in the File Station.

Presumably, they want the UI to be easier and ommit stuff they donīt think is important for using the UI.

The path is (probably) '/share/Media/Music', since that seems to exist. Check that one. You also have a folder '/share/homes'. Presumably '/share/homes/<some_user>' might be a good directory to put the docker stuff into.

Bit hard to remote trouble shoot finding stuff on other peoples computers tbh... ^^
Title: Re: Docker Image for MC27
Post by: NH on April 04, 2021, 09:49:38 pm
Thanks Max. Removed the formatting errors. Also located the folder. It was in share/CACHEDEV1_DATA.

But looks like the port 1900 is already in use.
Code: [Select]
docker: Error response from daemon: driver failed programming external connectivity on endpoint jrivermc27 (a3871effc096263f0496580ae2ffb03cb5af658482320d261dd5f952eb0ff902): listen udp4 0.0.0.0:1900: bind: address already in use.
I changed my Xbox which must have been using it to a static IP. But its still not working. I have quite a few devices which use UPNP so could be any of them.

Alternatively, what would the code be for using a static IP in bridge networking? Because this issue doesnt arise when I use static IP. I couldnt find it in the repository. Also host networking doesnt work at all. I have tried multiple times.

Many thanks for your continued support. Having come this far, I dont want to acknowledge defeat!

Best

NH
Title: Re: Docker Image for MC27
Post by: JimH on April 05, 2021, 06:20:46 am
Port 1900 is SSDP.  You could look it up on Google.
Title: Re: Docker Image for MC27
Post by: NH on April 05, 2021, 09:43:11 am
Port 1900 is SSDP.  You could look it up on Google.

Thanks Jim. Looked it up. Apparently any devices that use UPnP can latch onto this port of the router. Though I wonder how this never became a constraint earlier since I have many UPnP devices.

Best
Title: Re: Docker Image for MC27
Post by: max096 on April 05, 2021, 11:43:55 am
Thanks Max. Removed the formatting errors. Also located the folder. It was in share/CACHEDEV1_DATA.

But looks like the port 1900 is already in use.
Code: [Select]
docker: Error response from daemon: driver failed programming external connectivity on endpoint jrivermc27 (a3871effc096263f0496580ae2ffb03cb5af658482320d261dd5f952eb0ff902): listen udp4 0.0.0.0:1900: bind: address already in use.
I changed my Xbox which must have been using it to a static IP. But its still not working. I have quite a few devices which use UPNP so could be any of them.

Alternatively, what would the code be for using a static IP in bridge networking? Because this issue doesnt arise when I use static IP. I couldnt find it in the repository. Also host networking doesnt work at all. I have tried multiple times.

Many thanks for your continued support. Having come this far, I dont want to acknowledge defeat!

Best

NH

When you have a device with an ip only one program can listen to a specific port. Itīs certainly not your xbox...

Iīd say just remove port 1900, or change it to 1901. Itīs not really strictly required either. I also dont think upnp will even work in bridge networking. At least I never had it work.

Itīs certainly possible to create multiple IPs on a single nic (has nothing to do with docker though). I would not recommend you doing that if itīs not supported by qnap.

The Static IP option for a container (that docker provides) wonīt really do what you might think it should. Its an IP that gets assigned to the container within the vnet that bridge networking creates. You canīt actually use that IP for anything unless you are inside that network yourself. Which you are not unless you are another docker container in the same vnet.
Title: Re: Docker Image for MC27
Post by: NH on April 05, 2021, 02:00:35 pm




Quote
Iīd say just remove port 1900, or change it to 1901. Itīs not really strictly required either. I also dont think upnp will even work in bridge networking. At least I never had it work.

Dear Max, I have tried that. Getting two different types of error messages when I try port 1901 vs when I remove it.

Code: [Select]
docker pull shiomax/jrivermc27
Using default tag: latest
latest: Pulling from shiomax/jrivermc27
Digest: sha256:47a4bcbaccb1af63db5d938094a40ee54301417814e9ba63f180cfa9337a89f4
Status: Downloaded newer image for shiomax/jrivermc27:latest
docker.io/shiomax/jrivermc27:latest
[/] # docker run -d \
>     --name=jrivermc27 \
>     --net=bridge \
>     --restart=always \
>     --mac-address=ed:e8:60:2d:65:c1 \
>     -p 5800:5800 \
>     -p 5900:5900 \
>     -p 52199:52199 \
>     -p 1901:1901/udp \
>     -v config:/config:rw \
>     -v /share/CACHEDEV1_DATA/Media/Music:/data/music:rw \
>     -v /share/external/DEV3601_2:/data/musichdd:rw \
>     shiomax/jrivermc27
60b1bc88b3c66e9fa4945b1da048192d9487f2f34c5546baf8a37a37b15a0784
docker: Error response from daemon: driver failed programming external connectivity on endpoint jrivermc27 (d7e94bb31e1d38b74f6f51f60136074642ced702462af34e3ce5fcf0c576ad5d): listen udp4 0.0.0.0:1901: bind: address already in use.

[/] # docker run -d \
    --net=bridge \
>     --name=jrivermc27 \
>     --net=bridge \
>     --restart=always \
>     --mac-address=ed:e8:60:2d:65:c1 \
>     -p 5800:5800 \
>     -p 5900:5900 \
>     -p 52199:52199 \
>     -v config:/config:rw \
>     -v /share/CACHEDEV1_DATA/Media/Music:/data/music:rw \
>     -v /share/external/DEV3601_2:/data/musichdd:rw \
>     shiomax/jrivermc27
b414e2bafedd7cdeeadfa0873795007ce9697cfe78acc119c26355ae78b07523
docker: Error response from daemon: OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , stderr: time="2021-04-06T00:10:40+05:30" level=fatal msg="failed to add interface veth5a69272 to sandbox: error setting interface \"veth5a69272\" MAC to \"ed:e8:60:2d:65:c1\": cannot assign requested address": unknown.
I dont understand the second one for sure and not sure how I could remove any other service that is binding to 1900. Nor even how to find out which one it could be

Quote
  Itīs certainly possible to create multiple IPs on a single nic (has nothing to do with docker though). I would not recommend you doing that if itīs not supported by qnap. 

QNAP supports that. In fact the only way I could make it work using the QNAP GUI was when I did bridge networking using a static IP with an address different than the NAS. So if there is a line of code I can add which enables bridge networking via static IP, would love to try that.

Quote
The Static IP option for a container (that docker provides) wonīt really do what you might think it should. Its an IP that gets assigned to the container within the vnet that bridge networking creates. You canīt actually use that IP for anything unless you are inside that network yourself. Which you are not unless you are another docker container in the same vnet.
My knowledge is very limited, but all I can say is that via the GUI and bridge networking, I can give an IP address say X.X.X.22 to the JRMC27 docker when the NAS address is X.X.X.21 and it works. I can access it from Gizmo on the network, BubbleUPnP etc.

I have taken a lot of your time and attention and I deeply respect and appreciate your support and commitment to the JRiver community!!

We don't need to break our heads over this anymore. This is a feature that perhaps only a small minority will ever miss. I will use the GUI to create and run an instance accessing the data inside the NAS. As and when QNAP enables accessing HDDs from their GUI, I will use that.

Many thanks for all the help from you and others (Jatzoo, Scobie, Hawi, Jim and others). Am continually amazed by the lengths to which experts like all of you go to help fellow members! One of the big reasons why I am a JRiver fan!!

Thank you once again!

Best

NH
Title: Re: Docker Image for MC27
Post by: max096 on April 05, 2021, 03:41:11 pm
I dont understand the second one for sure and not sure how I could remove any other service that is binding to 1900. Nor even how to find out which one it could be

Probably you have a lot of those jriver containers running already. You cannot assign the same mac twice. You can list the containers with 'docker ps -a' and remove them with 'docker rm -f <id>'. Looks like something is using 1901 also. So clean up those containers you made while messing around and pick a port you are not using.

You can also list what process uses what port with 'sudo netstat -tulpn | grep LISTEN' for instance. Not 100% sure qnap ships with the tools to make this command work. It might.

My knowledge is very limited, but all I can say is that via the GUI and bridge networking, I can give an IP address say X.X.X.22 to the JRMC27 docker when the NAS address is X.X.X.21 and it works. I can access it from Gizmo on the network, BubbleUPnP etc.

Yeah... itīs possible but itīs a multistep process and not at all a just another option you put into that docker run command. And Im not sure how qnap manages it itself. So I donīt know if whatever I would do would not be undone by qnap upon restarts or updates of the NAS itself. You would have to create an ip alias first (the nothing to do with docker part). Then create a docker network using that ip alias as a NIC and then you can start creating containers that use that network. Imo... donīt do that yourself from the terminal unless you yourself know what you are doing and can fix issues when they occur.

It seems strange to me why qnap would do that by default for bridge networking especially unless it detects that there are port conflicts and just suggests that as a quickfix of sorts. Since with bridge networking (unlike host networking) you have the option to freely change ports around as you see fit. So if you have conflicts... pick different ports for the most part.
Title: Re: Docker Image for MC27
Post by: NH on April 06, 2021, 12:27:51 pm
Quote
Probably you have a lot of those jriver containers running already. You cannot assign the same mac twice. You can list the containers with 'docker ps -a' and remove them with 'docker rm -f <id>'. Looks like something is using 1901 also. So clean up those containers you made while messing around and pick a port you are not using.

I remove the ones that dont work. So there is no jriver docker anymore.

Quote
   
You can also list what process uses what port with 'sudo netstat -tulpn | grep LISTEN' for instance. Not 100% sure qnap ships with the tools to make this command work. It might.

Worked. None of the services is using 1900 or 1901.

Code: [Select]
 
sudo netstat -tulpn | grep LISTEN
tcp        0      0 0.0.0.0:8200            0.0.0.0:*               LISTEN      20597/myupnpmediasv
tcp        0      0 127.0.0.1:5000          0.0.0.0:*               LISTEN      12744/apache-dav
tcp        0      0 127.0.0.1:5001          0.0.0.0:*               LISTEN      12744/apache-dav
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      16868/smbd
tcp        0      0 127.0.0.1:40780         0.0.0.0:*               LISTEN      26244/php
tcp        0      0 127.0.0.1:23310         0.0.0.0:*               LISTEN      32469/mysqld
tcp        0      0 127.0.0.1:3310          0.0.0.0:*               LISTEN      11542/mysqld
tcp        0      0 0.0.0.0:5583            0.0.0.0:*               LISTEN      27939/remotepad
tcp        0      0 127.0.0.1:3311          0.0.0.0:*               LISTEN      11542/mysqld
tcp        0      0 127.0.0.1:32401         0.0.0.0:*               LISTEN      1748/Plex Media Ser
tcp        0      0 0.0.0.0:9812            0.0.0.0:*               LISTEN      30641/qtvagent
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      9553/dnsmasq
tcp        0      0 10.0.5.1:53             0.0.0.0:*               LISTEN      9553/dnsmasq
tcp        0      0 10.0.3.1:53             0.0.0.0:*               LISTEN      9553/dnsmasq
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      18667/sshd
tcp        0      0 0.0.0.0:4567            0.0.0.0:*               LISTEN      16657/dockerd
tcp        0      0 127.0.0.1:32600         0.0.0.0:*               LISTEN      3434/Plex Tuner Ser
tcp      129      0 127.0.0.1:45177         0.0.0.0:*               LISTEN      2409/Plex Plug-in [
tcp        0      0 127.0.0.1:5050          0.0.0.0:*               LISTEN      23772/python
tcp        0      0 0.0.0.0:8765            0.0.0.0:*               LISTEN      30405/lircd
tcp        0      0 127.0.0.1:8893          0.0.0.0:*               LISTEN      20942/mpd
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      16868/smbd
tcp        0      0 0.0.0.0:9790            0.0.0.0:*               LISTEN      11821/java
tcp        0      0 10.0.5.1:9791           0.0.0.0:*               LISTEN      11821/java
tcp        0      0 10.0.3.1:9791           0.0.0.0:*               LISTEN      11821/java
tcp        0      0 127.0.0.1:9791          0.0.0.0:*               LISTEN      11821/java
tcp        0      0 10.0.0.21:9791          0.0.0.0:*               LISTEN      11821/java
tcp        0      0 127.0.0.1:12351         0.0.0.0:*               LISTEN      21797/mpd
tcp        0      0 127.0.0.1:12352         0.0.0.0:*               LISTEN      3510/mpd
tcp        0      0 10.0.0.21:49152         0.0.0.0:*               LISTEN      20007/upnpd
tcp        0      0 127.0.0.1:58080         0.0.0.0:*               LISTEN      17357/_thttpd_
tcp        0      0 10.0.3.1:6881           0.0.0.0:*               LISTEN      13727/dsd
tcp        0      0 10.0.5.1:6881           0.0.0.0:*               LISTEN      13727/dsd
tcp        0      0 10.0.0.21:6881          0.0.0.0:*               LISTEN      13727/dsd
tcp        0      0 127.0.0.1:6881          0.0.0.0:*               LISTEN      13727/dsd
tcp        0      0 127.0.0.1:6050          0.0.0.0:*               LISTEN      16053/python2.7
tcp        0      0 127.0.0.1:50051         0.0.0.0:*               LISTEN      15868/dockerd
tcp        0      0 127.0.0.1:6051          0.0.0.0:*               LISTEN      16053/python2.7
tcp        0      0 0.0.0.0:50052           0.0.0.0:*               LISTEN      20251/FcServer_mt
tcp        0      0 0.0.0.0:51461           0.0.0.0:*               LISTEN      32155/tutk_agent
tcp        0      0 0.0.0.0:50053           0.0.0.0:*               LISTEN      20251/FcServer_mt
tcp        0      0 127.0.0.1:6053          0.0.0.0:*               LISTEN      15448/qbusd
tcp        0      0 0.0.0.0:50054           0.0.0.0:*               LISTEN      20251/FcServer_mt
tcp        0      0 :::2376                 :::*                    LISTEN      16657/dockerd
tcp        0      0 :::139                  :::*                    LISTEN      16868/smbd
tcp        0      0 :::8080                 :::*                    LISTEN      9182/apache_proxy
tcp        0      0 :::32400                :::*                    LISTEN      1748/Plex Media Ser
tcp        0      0 :::80                   :::*                    LISTEN      12541/fcgi-p
tcp        0      0 :::8081                 :::*                    LISTEN      12541/fcgi-p
tcp        0      0 :::22                   :::*                    LISTEN      18667/sshd
tcp        0      0 :::443                  :::*                    LISTEN      18666/apache_proxys
tcp        0      0 :::445                  :::*                    LISTEN      16868/smbd
 

Quote
 
Yeah... itīs possible but itīs a multistep process and not at all a just another option you put into that docker run command. And Im not sure how qnap manages it itself. So I donīt know if whatever I would do would not be undone by qnap upon restarts or updates of the NAS itself. You would have to create an ip alias first (the nothing to do with docker part). Then create a docker network using that ip alias as a NIC and then you can start creating containers that use that network. Imo... donīt do that yourself from the terminal unless you yourself know what you are doing and can fix issues when they occur.

It seems strange to me why qnap would do that by default for bridge networking especially unless it detects that there are port conflicts and just suggests that as a quickfix of sorts. Since with bridge networking (unlike host networking) you have the option to freely change ports around as you see fit. So if you have conflicts... pick different ports for the most part.

When I do host networking, the container gets set up but it shows some continuously running error messages and the it never stabilises. Only way out is to stop the process or open settings and change host to bridge. Doesnt allow me to accept host networking. So I have to change to bridge (static) or NAT and then the mount point disappears - i.e. there are no files in data/music.

Agree. Too complex for my comfort and skill! Will ping QNAP on this and see what they say.

Many thanks Max.

Best

NH
Title: Re: Docker Image for MC27
Post by: kdp on April 10, 2021, 11:32:32 am
Hi Max,

thank you for all your work to make this run "headless"

I have MC27 running on docker in an OMV NAS running on an AMD3XXX processor. it took a bit of discovery but audio is now working fine.  when I try to import video files in the library, they get imported as documents. I am unable to see a way of changing that via the web interface. Nor do I see FFMpeg in the plugin directory. Hard copying the file there also did not make any difference. sSome guidance for the video files recognised automatically would be welcome.

thanks :-)
Title: Re: Docker Image for MC27
Post by: Irtelli on April 14, 2021, 09:38:27 am
Hi there,
Being a massive noob, I've been struggling to get JRiver (shiomax/jrivermc27/latest) running through a Docker container on my Synology 920+ NAS. I've been directed here after starting a new post on the Linux forums.
1. I've got the container up and running but how do I get the web GUI to show?
2. It says you should use docker-compose. How do I get this to run? And isn't the container already mostly configured with the correct settings?
I've been trawling the forums here but feel that there's a lot of people that are an extra step ahead of any solution that would be useful at my stage of the learning curve.
Thanks in advance for your patience! :-)
Title: Re: Docker Image for MC27
Post by: Wheaten on April 14, 2021, 10:08:55 am
When the docker is up and running there is a clickable link in the overview of dockers at your NAS.
It's your NAS IP and the port as configured in the settings. If you didn't change any ports the UI should be reachable via:
<ip-address>:5800
Title: Re: Docker Image for MC27
Post by: Afrosheen on April 14, 2021, 12:43:53 pm
Hi, I just purchased a Master License, but when I input it for MC27 I get an error saying that I'm using a different license.  Is there a way to restore via the key instead? 
Title: Re: Docker Image for MC27
Post by: Awesome Donkey on April 14, 2021, 12:54:35 pm
It has to be running Media Center 27.0.79 or newer for it to work.
Title: Re: Docker Image for MC27
Post by: Afrosheen on April 14, 2021, 01:16:05 pm
Perfect!! That worked!  Thanks!!
Title: Re: Docker Image for MC27
Post by: HaWi on April 24, 2021, 01:00:29 pm
Is it me or is the .84 image for docker not published yet. When I recreate the container with Portainer pulling the latest image I still get the .79 image. Any insight is highly appreciated
Title: Re: Docker Image for MC27
Post by: Jester_6k9 on April 25, 2021, 11:37:17 pm
Is it me or is the .84 image for docker not published yet. When I recreate the container with Portainer pulling the latest image I still get the .79 image. Any insight is highly appreciated
It's available for ~18h now:

Code: [Select]
~> docker pull shiomax/jrivermc27:latest
latest: Pulling from shiomax/jrivermc27
Digest: sha256:3d009098e3fc0b11bb5d15287d97b0b1077d74c0f87b9597488760e02f78d144
Status: Image is up to date for shiomax/jrivermc27:latest
docker.io/shiomax/jrivermc27:latest
Title: Re: Docker Image for MC27
Post by: HaWi on April 26, 2021, 10:17:47 am
Yup, thanks, got it now.
Title: Re: Docker Image for MC27
Post by: Dr_Hoon on June 03, 2021, 05:38:31 pm
The ARM version of MC27 on Docker Hub is no longer licensable, as it needs to be version 27.0.85 or higher for any new licenses to work. I'm hoping that someone may please be able to build the latest version for ARM? Thanks in advance!
Title: Re: Docker Image for MC27
Post by: max096 on June 05, 2021, 12:38:14 pm
The ARM version of MC27 on Docker Hub is no longer licensable, as it needs to be version 27.0.85 or higher for any new licenses to work. I'm hoping that someone may please be able to build the latest version for ARM? Thanks in advance!

You can easily build it locally on your raspberry. But I currently did not want to throw it into the 'official' repo (well the official repo of the community image I made let's say^^) as from my experience there is a lot of weird artifacting going on in the vnc client. It's useable but not amazing. But if you are only going to remote control it with JRemote like I do or don't mind it. It's basically fine.

1.)
Code: [Select]
git clone https://gitlab.com/shiomax/jrivermc-docker.git2.) Navigate into the folder and run
Code: [Select]
./build.sh 27-latest-debian-10-arm3.) You should now have an image locally with the name
Code: [Select]
shiomax/jrivermc27-testing:27-latest-debian-10-arm if I'm not mistaking otherwise list the images available using
Code: [Select]
docker image list and find the one.

Then you can use that just as you normally would with that name.
Title: Re: Docker Image for MC27
Post by: Dr_Hoon on June 05, 2021, 07:08:16 pm
Thanks for the reply. I don't have a Raspberry Pi. I'm using Container Station on my QNAP NAS, using the only MC ARM build on Docker Hub (27.0.22). So, everything you've written is foreign language to me, but I'm willing to try and learn something new if it's the only way I can get my system up and running the way it was working before I ran into the insurmountable transitional MC28 licensing conundrum. Is buying a Raspberry Pi the only way for me to build the image, or might there be apps available on my QNAP to do it?

Yes, when accessing MC via a web browser, it does have the graphic artifacting and isn't pretty to look at, but it's perfectly useable for setting the preferences and doing some custom tagging. Once that's all done, I use JRemote2 and it works like a charm. I much prefer this setup, as I'm only using MC as a hi-fi music server and can do so with a minimum of devices (no need to power up another computer as the middle man). I can run a basic ARM NAS fitted with SSDs silently, as the power usage isn't enough to break a sweat. What I love about it, is you wouldn't know the NAS is there. To use, it feels like a direct relationship between JRemote2 and my receiver.

The docker image I'm using was made by a user named Merkulov1979, based upon one of your images and is the sole MC image for ARM on Docker Hub, uploaded 7 months ago.  Looking at the number of downloads, it seems my setup may be one of the least trodden paths among the MC community. Right now there is no available option for users such as myself to license MC, and there's no guarantee Merkulov1979 will ever make another docker image. Apologies for the long-winded response, but if there's any chance you could please compile an ARM version and put it on Docker Hub, that would be a life saver. Even if it's labelled as experimental/beta/ugly, I'm sure others in my position will be as eternally grateful as I will be.
Title: Re: Docker Image for MC27
Post by: max096 on June 06, 2021, 07:19:59 am
Thanks for the reply. I don't have a Raspberry Pi. I'm using Container Station on my QNAP NAS, using the only MC ARM build on Docker Hub (27.0.22). So, everything you've written is foreign language to me

Guess, I assumed to much here. Most of the time people using arm are on raspberries (I think?). Dunno.

but if there's any chance you could please compile an ARM version and put it on Docker Hub, that would be a life saver.

https://hub.docker.com/r/shiomax/jrivermc27-arm

Here you go, you can use shiomax/jrivermc27-arm:27.0.84-latest-12 for now.  :)
Title: Re: Docker Image for MC27
Post by: Dr_Hoon on June 06, 2021, 10:46:47 am
Oh wow, thanks heaps for your generous support.

JimH says the current licenses for purchase only work on 27.0.85 and higher though. My sincerest apologies to waste your time on this. I hope I haven't used up all good will for the next release!

Quote
Most of the time people using arm are on raspberries (I think?)

Going by the number of downloads on the ARM compared to AMD docker images, I reckon you're probably right. My QNAP NAS is definitely ARM though.
Title: Re: Docker Image for MC27
Post by: max096 on June 06, 2021, 10:56:57 am
Oh wow, thanks heaps for your generous support.

JimH says the current licenses for purchase only work on 27.0.85 and higher though. My sincerest apologies to waste your time on this. I hope I haven't used up all good will for the next release!

Going by the number of downloads on the ARM compared to AMD docker images, I reckon you're probably right. My QNAP NAS is definitely ARM though.

.85 does not seem to be available for Linux (yet). Just the windows version. So gotta wait for that if it does not activate.
Title: Re: Docker Image for MC27
Post by: Awesome Donkey on June 06, 2021, 11:14:54 am
Actually, you can use a MC28 license in MC27 with 27.0.79 and above for MC27 for Linux. So it'll work fine.
Title: Re: Docker Image for MC27
Post by: Dr_Hoon on June 07, 2021, 05:39:12 am
Yes! It works and accepts the license. Thanks, Max096 for building the image. You saved the day!