EDIT: AS OF 03/25/2020 THE GIST TO GET DOCKER RUNNING ON WINDOWS 10 HOME DOES NOT WORK ANYMORE. I'm leaving the thread here because there was some other conversation, but if you want to run Docker on Windows, you will need to get Windows 10 Pro.
OK, the first thing I should say is: don't do this. I mean, there really is no reason. But I did, so I thought I'd at least document it here in case there's one or two other crazy people who want to do this.
Why did I do this crazy thing?
What are the caveats?
Since I have an analog encoder (network based) and IR blaster (USB based), for me that meant I literally had to write a websockets wrapper around my IR blaster software so that I could call the blaster from a Docker container and have a Pi do the channel changes for me. Remember how I said you shouldn't do this? I'm serious. At some point this kind of became an exercise in stubbornness and seeing if I could program my way out of my issues.
And here's the kicker. Docker Desktop for Windows won't even install on Windows 10 Home by default. I found this Gist that let's you install the necessary VM components and then temporarily trick Windows 10 Home into saying it's Windows 10 Pro so the Docker Desktop for Windows installer will work.
With Docker running, you can download sub's AMD64 image and run it as the instructions in that section show. Because I needed Python3 in my image, I used my previously built NPVR image that includes Python3. More on that in this thread.
But after a couple of hours, it's done. I'm running NPVR5 on Windows 10 Home in a Docker container. And the performance is pretty good. And most of the time was spent exporting my scheduled and current recordings and fixing the XML for updated channel OIDs and Linux paths. Now when I finally get the new NAS it shouldn't take more than 10 minutes or so to migrate NPVR to it. I guess the other nice thing about this is that if I have to go back to NPVR4 for some reason, all I have to do is shutdown Docker and restart the NPVR4 service.
OK, the first thing I should say is: don't do this. I mean, there really is no reason. But I did, so I thought I'd at least document it here in case there's one or two other crazy people who want to do this.
Why did I do this crazy thing?
- I had a perfectly good test setup running in Docker on my Mac (which was another crazy thing).
- I'm planning to get a Synology NAS pretty soon and run NPVR on that in Docker.
- I really wanted to go ahead and move to NPVR5 now but didn't want to do a new build on Windows and then try and move everything to Docker later.
What are the caveats?
- You cannot use any USB based devices (tuners, IR blasters, nothing). Docker on Windows (and Mac) don't support passing through USB devices the way the Linux versions do.
Since I have an analog encoder (network based) and IR blaster (USB based), for me that meant I literally had to write a websockets wrapper around my IR blaster software so that I could call the blaster from a Docker container and have a Pi do the channel changes for me. Remember how I said you shouldn't do this? I'm serious. At some point this kind of became an exercise in stubbornness and seeing if I could program my way out of my issues.
And here's the kicker. Docker Desktop for Windows won't even install on Windows 10 Home by default. I found this Gist that let's you install the necessary VM components and then temporarily trick Windows 10 Home into saying it's Windows 10 Pro so the Docker Desktop for Windows installer will work.
With Docker running, you can download sub's AMD64 image and run it as the instructions in that section show. Because I needed Python3 in my image, I used my previously built NPVR image that includes Python3. More on that in this thread.
But after a couple of hours, it's done. I'm running NPVR5 on Windows 10 Home in a Docker container. And the performance is pretty good. And most of the time was spent exporting my scheduled and current recordings and fixing the XML for updated channel OIDs and Linux paths. Now when I finally get the new NAS it shouldn't take more than 10 minutes or so to migrate NPVR to it. I guess the other nice thing about this is that if I have to go back to NPVR4 for some reason, all I have to do is shutdown Docker and restart the NPVR4 service.