podget
podget copied to clipboard
Docker image
It would be cool if there was an easy docker image to use and have a YAML/JSON file to import the files/RSS links. That way I can run it as a sidecar in Kubernetes for example. Or just have it run independently from other stuff on my server.
@dvehrs
Let me start by saying I'm often slow to adopt new things and this might be one of those cases.
First issue I see is using a YAML/JSON file to import RSS links. That would create an additional layer of interpretation and may result in more bugs to work through.
Seems to me it would be easier to include a local volume option. This directory could include one directory to hold the configuration files and one directory to hold the downloaded files. That would allow any localized configuration and downloaded files to survive any upgrades to the docker image. This survival would be especially import for remembering what files have already been downloaded.
Now, that seems a workable solution but I'm not convinced that it really brings enough new to the table to justify itself. Typically I've seen docker images used for services that potentially could expose the underlying system to some security risks. I'm not sure that can be said for Podget.
Second issue, a docker image running podget would only really work for a single user or for a group of users who didn't care that everyone could see which feeds they were downloading. If you install Podget on a server in the conventional manner then it is available for all users and they can't really see which feeds each other are downloading.
Third issue, running a docker image with just Podget seems overkill. After all, Podget only runs for a short period from crontab. Do we want to enable the docker image to come on at those times and then automatically close when done? Seems like more unneeded complexities.
Now it's entirely possible I'm wrong on everything and there is a good reason to do this, so I will leave this open to see if anyone cares to jump in with any ideas or suggestions.
Dave
Maybe you could use environment variables instead of a YAML file? Yeah, local volume is what I was thinking. You could run multiple containers, that way it's all seperate. Docker only takes up the resources that it's using. I don't see why its overkill, besides its easy to get started and and begin using.
By definition running something in a Docker container takes more resources than just running it natively. Even if it's only a small difference. This would be multiple containers so that would magnify the difference. Is it a significant difference on modern machines? Maybe not but it is a difference.
But most of that is irrelevant here. The big issue is you are asking me to do something to make it easier for you. So you need to convince me that it's in my interests to do so.
It's like the recent addition of support for the BSDs. Those started as a pull request with suggested changes. It took a little bit of back and forth but we came to an agreement on how to get those integrated. Then I found a few minor issues to fix so I did. Then it took a lot of testing to make sure it worked for everybody. Then I merged those changes with the DEV branch and did more testing. Then I merged with the MASTER branch, did some more testing and set a release.
Since then I've learned there is one more small fix needed for Mac OS support.
So just because something sounds simple to you, does not mean it is when you scale it up to everywhere it has to be tested.
Now there is one other good lesson from the BSD support. I was fairly happy to make time to work on that with Eric Cook because it started as a pull request. He had started it and gave us something to build on. On the other hand, all you're presented is an idea and not even a fully fleshed out idea but just the scrape of a starting point. So when you say this is easy, I have to wonder if you know what you are talking about. If it is easy, then why haven't you made an attempt at doing it?
Dave
Fair enough, I just have to figure out how to get it so that cron works in docker, or find an alternative way.
I am coming around to this idea slowly. I'm not convinced Docker is the way to go, but as you mentioned it might make it a bit easier for some people to use Podget. Now I use Docker on my server for a couple applications but I use Snap packages (snapd) for a couple applications on my workstation that are not packaged for my distribution. However I know nothing about building and distributing snap packages so I don't know if it is any easier or harder than docker images. I'm tempted to look into that but no promises....
Dave