LMS-Community / slimserver-platforms

Platform-specific build tools for Lyrion Music Server

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tagged docker image build for 7.x to permit Squeezebox radio patching

EdKingscote opened this issue · comments

Now that there is a Docker image available, and given that future patching of the Squeezebox Radio may still require version 7.x, would it be possible to set up a separate tagged image for the older release in the official docker hub repo? I believe switching docker images, or just using the docker image version to patch is a very low friction approach to helping to manage this issue.

Many thanks for all the hard work.

You don't need LMS7 to patch the Radio. What issue did you encounter with LMS8?

I have (v7.9.2, 1556796842, Thu May 2 13:44:50 CEST 2019) perl 5.026001 natively installed on OpenSUSE Leap 15.0, but the radio didn't want to connect as happens from time to time. The usual tricks of stopping/restarting the server didn't appear to be working, and when I noticed the official Docker image was now available I figured I'd give it a spin as it would be a much easier path to upgrading, and hopefully resolving the occasional disappearing server issues I've been having for a while.

I created a docker-compose file as follows:

version: '3'
services:
  lms:
    container_name: lms
    image: lmscommunity/logitechmediaserver
    volumes:
      - ./config:/config:rw
      - /home/me/music:/music:ro
      - /home/me/playlists:/playlist:ro
        #      - /etc/localtime:/etc/localtime:ro
        #      - /etc/timezone:/etc/timezone:ro
    ports:
      - 9001:9000/tcp
      - 9090:9090/tcp
      - 3483:3483/udp
    restart: always
    environment:
      - PUID=110
      - PGID=112

Docker startup complaining about access to the timezone stuff, so I just commented it out, I exposed 3483/udp as I was troubleshooting squeezelite-x seeing the server (as it didn't want to keep running between floors to get the basics going), and I set the UID/GID to match the squeezebox user on the host OS as I already had a native install.

I copied the files from the native install at /etc/squeezebox to the config directory (because I figured it would bring all my configuration over) and the image came online, did the music scan, and the radio attempted connection but told me a firmware upgrade was needed to connect. (Sorry, I don't have the exact message now). I then stopped the container, flipped back to running the old server natively, which decided it wanted to start behaving again, and I found and applied the manual patch instructions to my player so I could look at upgrading again easily in the near future.

If there is an easy way to remove the patch without doing a factory reset of the radio, I'd be happy to do so to reproduce the exact issue for further diagnosis. Right now my radio is reporting Firmware: 7.7.3-r16676

Sidenote: I now suspect that a copy of /var/lib/squeezeboxserver might be more useful than /etc/squeezeboxserver in terms of migrating all my existing stuff over to Docker without losing stuff, especially if I map in my existing music/playlists to the same spot to avoid a full rescan.

I think you might be seeing an issue I've run into after the latest update: the 9000 port needs to be identical internally and externally. I've therefore pushed an update to the Dockerfile etc. to make this configurable through an environment variable.

The underlying issue is that LMS would tell connecting player on which port to expect the sound. LMS would tell the port itself is using, not what it's mapped to outside the container. Therefore in your case it would tell the player to connect on port 9000 - which it can't, because on the outside it's listening to port 9001.

I also have the radio and there are no issues with 8.0.