Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker Image #15

Open
christianhuth opened this issue Dec 6, 2022 · 13 comments
Open

Docker Image #15

christianhuth opened this issue Dec 6, 2022 · 13 comments

Comments

@christianhuth
Copy link

Are there any plans to provide a Docker Image?

@erohtar
Copy link
Owner

erohtar commented Dec 6, 2022

Currently no, since it's literally just copying the release files into an existing (trusted) container's www folder. And I already covered the instructions for that in the README - if they're unclear or missing anything, pls let me know and I'll update.

@christianhuth
Copy link
Author

@erohtar The instructions are clear in my opinion, but without an existing Image there is no way of running the application on Kubernetes.

@erohtar
Copy link
Owner

erohtar commented Dec 6, 2022

Does installing a webserver container (eg nginx) and copying Dasherr files to that, not work with Kubernetes?

@christianhuth
Copy link
Author

Not really no. And in general it is far away from the "container and cloud native way" to build containers manually and run these in production environments.

@erohtar
Copy link
Owner

erohtar commented Dec 6, 2022

I have to agree with you on the latter part there.

Not really no.

Why not?

@christianhuth
Copy link
Author

Because in Kubernetes you are usually in the context of distributed environments. Therefore you don't know on which node the container will run. You then would need to make the files available on all nodes, where the container might run.

If the files are already included in a pre-build docker image, it would make things way easier and go more into the "best practice" direction.

@erohtar
Copy link
Owner

erohtar commented Dec 6, 2022

I don't have hands-on experience with Kubernetes myself (yet), so I'm in no position to argue here. I'll keep this open and add a low priority label.

@Sierra1011
Copy link

@christianknell Not sure what environment you're working in, but I'm bundling Dasherr and my config files into an nginx container and pushing that to my container registry. Works fine that way.
Alternatively you could use an initContainer to copy your config files into a PV for the Dasherr container to use. Or even handcrank the data initially, or use whatever CI you use to sync files into the volume.

@christianhuth
Copy link
Author

@Sierra1011: of course that would be possible. But still my point remains: the "real" way of using containers is to do it in an immutable way. Thus releasing fixed versions of the Dockerimage already containing all the files and not copying them over in any way.

@Sierra1011
Copy link

Since there are a lot of options for containers you could build the binary into, and even within a single image line (e.g. nginx) there could be multiple tags to build for and maintain perpetually, I think it would be an immense burden on the creator to maintain what could easily be 20+ images building out of each binary release. And even then people will have edge cases that they want support for.

Far easier and maintainable to provide the binary and let users drop it into their container of choice, even if that is fractionally more work for them.

I'm sure @erohtar would be open to a PR with an example Dockerfile for the docs?

@Sierra1011
Copy link

I guess the obvious response would be to offer a single image of nginx:latest and then let users take it as they wish, but if it's not the creator's focus then it's fair to let them just do the binary 🙂

@erohtar
Copy link
Owner

erohtar commented Dec 20, 2022

Since there are a lot of options for containers you could build the binary into, and even within a single image line (e.g. nginx) there could be multiple tags to build for and maintain perpetually, I think it would be an immense burden on the creator to maintain what could easily be 20+ images building out of each binary release. And even then people will have edge cases that they want support for.

Thank you @Sierra1011 , that's definitely where I'm at right now. While I understand @christianknell 's pov, right now setting up docker images for all those platforms isn't a priority for me.

@christianhuth
Copy link
Author

Since there are a lot of options for containers you could build the binary into, and even within a single image line (e.g. nginx) there could be multiple tags to build for and maintain perpetually, I think it would be an immense burden on the creator to maintain what could easily be 20+ images building out of each binary release. And even then people will have edge cases that they want support for.

Thank you @Sierra1011 , that's definitely where I'm at right now. While I understand @christianknell 's pov, right now setting up docker images for all those platforms isn't a priority for me.

and that's of course alright to me. I just wanted to start the discussion as I want to build a Helm Chart for Dasherr. And without fixed Dockerimages I should not do it. Therefore I will wait or find the time to drop you a PR with an automated way of building and releasing the Dockerimage. Thanks so far!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants