Plex Media Server is a digital media player and organizational tool that allows you to access the music, pictures, and videos stored on one computer with another computer or mobile device. Sync stuck 'waiting for server'. Millercentral August 11, 2015, 4:14am #1. Selected a movie to sync to the new IOS client (on a gen3 iPad), watched the server status say converting, then when it hit 50% and was ready to download, the client says “Waiting for Server”, and if I look on the server it says the file is “Waiting to be.
In my last post, I discussed several Docker containers that I’m using for my home media streaming solution. Since then, Plex Media Server has updated to 0.9.11.4 for non-Plex Pass users, and there’s another update if you happen to pay for a subscription. As the Docker container I used (timhaak/plex) was version 0.9.11.1 at the time, I figured I’d take the opportunity to describe how to
- update Docker itself to the latest version
- run a shell inside the container as another process, to review configuration and run commands directly
- update Plex to the latest version, and describe how not to do this
- perform leet hax: commit the container to your local system, manually update the package, and re-commit and run Plex
Sync items added to iPad in WebUI 'waiting to be converted', sync items added on iPhone directly convert right away. Help So, I was planning to a trip this afternoon and trying to get my media to my iPad to enjoy. Everything you need to know about Plex Media Server in 2020. From server requirements, optimizations, automation, and fixing common problems.
Updating Docker
I alluded to the latest version of Docker having features that make it easier to troubleshoot inside containers. Switching to the latest version was pretty simple: following the instructions to add the Docker repository to my system, then running
upgraded Docker to version 1.3.1 without any trouble or need to manually uninstall the previous Ubuntu package.
Run a shell using docker exec
Let’s take a look inside the plex container. Using the following command will start a bash process so that we can review the filesystem on the container:
docker exec -t -i plex /bin/bash
You will be dropped into a root prompt inside the plex container. Check out the filesystem: there will be a /config and a /data directory pointing to “real” filesystem locations. You can also use ps aux to review the running processes, or even netstat -anp to see active connections and their associated programs. To exit the shell, use Ctrl+C – but the container will still be running when you use docker ps -a from the host system.
Updating Plex in-place: My failed attempt
Different Docker containers will have different methods of performing software updates. In this case, looking at the Dockerfile for timhaak/plex, we see that a separate repository was added for the Plex package – so we should be able to confirm that the latest version is available. This also means that if you destroy your existing container, pull the latest image, then launch a new copy, the latest version of Plex will be installed (generally good practice.)
But wait – the upstream repository at http://shell.ninthgate.se/packages/debian/pool/main/p/plexmediaserver/ does contain the latest .deb packages for Plex, so can’t we just run an apt-get update && apt-get upgrade?
Well, not exactly. If you do this, the initial process used to run Plex Media Server inside the Docker container (start.sh) gets terminated, and Docker takes down the entire plex container when the initial process terminates. Worse, if you then decide to re-launch things with docker start plex, the new version is incompletely installed (dpkg partial configuration).
So the moral of the story: if you’re trying this at home, the easiest way to upgrade is to recreate your Plex container with the following commands:
docker stop plex
docker rm plex
# The 'pull' process may take a while - it depends on the original repository and any dependencies in the Dockerfile. In this case it has to pull the new version of Plex.
docker pull timhaak/plex
# Customize this command with your config and data directories.
docker run -d -h plex --name='plex' -v /etc/docker/plex:/config -v /mnt/nas:/data -p 32400:32400 timhaak/plex
Once the container is up and running, access http://yourserver:32400/web/ to confirm that Plex Media Server is running. You can check the version number by clicking the gear icon next to your server in the left navigation panel, then selecting Settings.
Hacking the container: commit it and manually update Plex from upstream
If you’re more interested in hacking the current setup, there’s a way to commit your existing Plex image, manually perform the upgrade, and restart the container.
First, make sure the plex container is running (docker start plex) and then commit the container to your local filesystem (replacing username with your preferred username):
docker commit plex username/plex:latest
Then we can stop the container, and start a new instance where bash is the first process:
docker stop plex
docker rm plex
# Replace username with the username you selected above.
docker run -t -i --name='plex' -h plex username/plex:latest /bin/bash
Once inside the new plex container, let’s grab the latest Plex Media Server package and force installation:
Plex Sync Waiting To Be Converted
curl -O https://downloads.plex.tv/plex-media-server/0.9.11.4.739-a4e710f/plexmediaserver_0.9.11.4.739-a4e710f_amd64.deb
dpkg -i plexmediaserver_0.9.11.4.739-a4e710f_amd64.deb
# When prompted, select Y to install the package maintainer's versions of files. In my instance, this updated the init script as well as the upstream repository.
Now, we can re-commit the image with the new Plex package. Hit Ctrl+D to exit the bash process, then run:
docker commit plex username/plex:latest
docker rm plex
# Customize this command with your config and data directories.
docker run -d -h plex --name='plex' -v /etc/docker/plex:/config -v /mnt/nas:/data -p 32400:32400 username/plex /start.sh
Plex Sync Waiting To Download
# Commit the image again so it will run start.sh if ever relaunched:
docker commit plex username/plex:latest
You’ll also need to adjust your /etc/init/plex.conf upstart script to point to username/plex.
Plex Sync Waiting To Be Downloaded
The downside of this method is now that you’ve forked the original Plex image locally and will have to do this again for updates. But hey, wasn’t playing around with Docker interesting?