-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Any official docker installation? #1934
Comments
Check the docker branch of the repository. Last commit was in 2015. I think there is no official working docker version. |
Last anyone tried, Docker does not provide an environment close enough to Ubuntu 18.04 for this project to be installable within a container. |
Hi The big problem isn't the base. Docker thinks a bit different. A docker approach would take the components and put them into containers. So MIAB wouldn't be installed. MIAB would be the stack which gets it's needed data. So there are containers for Postfix, Dovecot, nsd and so on. The setup variables like IP, Domain and so on are managed by environment variables in the containers. The managment panel need to be changed in a dockerized variant. E.g. adding a new domain: the managment panel (in one container) would need to be able to change the config of nsd (in another container) and need to be able to restart nsd. This would be done by volume sharing and Docker Control Access. It's creatable but not exactly how it is actually. Big changes espacially in the managment core need to be done. Best Regards |
In some ways docker is the perfect fit for this project, it is just that to date the efforts to implement it have aimed so high it was all or nothing... which invariable meant nothing. @DerBunteBall concept is the right one. The way to approach this is not to "port MIAB to docker" but to port one small component. Prove it is interchangeable. Move onto the next one, rinse and repeat. |
Is this still interesting? If there is enough interest I would prepare an image and PR the required code. |
I don't have the time to maintain a more complicated project that involves containers. It is difficult enough as it is to get the components configured correctly. So it's not something I would merge. |
I would argue that containerizing MIAB in a I have a package that builds and runs a new MIAB installation in a rootless container using To have a supportable containerized MIAB package there are a number of interesting architectural issues to address, particularly where to draw the line between the images that the MIAB project builds and releases and the end-user-controlled container that the actual deployment uses, and whether the container itself is ephemeral or not... And, as with most complex systems, there are challenges in:
AFAICT none of these has any show-stopper qualities, and developer support should qualitatively improve, but I haven't done any solid POC work on this yet. Obviously, a number of other issues would need to be sorted out in discussions with the seasoned maintainers for such an effort to gain traction and the blessing of the powers that be. The bottom line is that it's easy to run MIAB in a |
If I'm understanding @hughsw correctly, I think you're suggesting a single container to run the entirety of MIAB. Whilst that's not "docker best-practice", I think it would be an awesome approach for MIAB, as an alternative install method. Attempting to split it into separate containers would effectively make this an entirely new project, not MIAB any more. By putting MIAB into one single container, I would hope the changes between a docker version and the current bare-metal version would hopefully be extremely minimal? |
@JoshData do you recall what are the main challenges? If it is dockerized and all the self-tests are passing, then it is all good correct? I propose coming up with a The main benefit is that the VPS can now be utilized for other purposes, especially other HTTPS instead of having MIAB be the sole occupant. Naturally, it would fall on the users themselves not to get in the way of the dockered MIAB. |
There wasn't a base image available that provided a systemd or equivalent startup process manager that worked well enough, and I think there were some issues choosing the root process (process zero). (This was with an all-in-one container.) As with any feature request, if it can be done with minimal changes to the Mail-in-a-Box code, then it's something I'd consider accepting, but I won't be doing any of the work. |
Thanks, I did a search and found one here https://github.com/debian-shaar/docker-for-mailinabox, let me see what comes out of it |
My opinion FWIW One monolithic container has always seemed like the wrong (anti docker) approach to me especially when utilising compose for orchestration. Surely it would be better to containerize each component into a discrete unit.
Mostly though it is just not such a huge delta that there is zero of @JoshData ever fully adopting or supporting it. This is why I suggest bite size migrations to containers for specific portions of MIAB seems like on sane way of achieving this gradually over time. |
It is incredibly unlikely that I would accept changes to dockerize individual components. I'm sure you all enjoy thinking about Docker, but I don't have the time to support more complexity, the community would struggle to support each other with issues that arise from a more complex project, and I just don't see it furthering any of the goals of this project. |
My POV is to get the monolith working first since systemd was the issue last time. After which, we can break it up however we want and the crux is to figure out if anything in miab needs to change for docker to work, correct? Or are you saying a monolith can't be broken up and thus may require a different set of changes in miab? |
This is what a working MIAB looks like, the challenge is nsd and named to listen on the same port but different interface. Are both absolutely required for MIAB to work? Update: sounds like a definite yes Lines 318 to 320 in de0fc79
|
Can I suggest given the clear statement above from @JoshData about containerization that we add some words to the main project summary about it once and for all. Requests related to this have been coming in regularly for over 10 years now (wow time flys) and it would be good to be able to point to something definitive for people to read e.g. we wont accept containerization/docker PRs but feel free to fork etc |
I don't think this characterizes what Josh said. He is happy to accept a PR if it meets his stated conditions. |
A way to overcome this is to move |
After much pain, I finally got it to work. The end solution was to get In the midst of getting here, I was able to get both Well, I'm going to monitor it for a few days first. |
alright here it is https://github.com/mxts/mail-in-a-docker |
Any official docker installation?
The text was updated successfully, but these errors were encountered: