-
Notifications
You must be signed in to change notification settings - Fork 146
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
Discussion Dev Setup Docker #2095
Comments
Alright, here are my opinions on the various points you brought up:
I don't know what this is, can you post some output?
In your issue, I asked what this problem even is, but you haven't responded yet, so I don't know what to think about this point. Is it connected to your first problem?
Tried it today, the error does not occur anymore (also in Docker). I think this has nothing to do with Vagrant or VirtualBox, this is just some ubuntu stuff.
As far as I can tell, this was only a beta so far anyways and they are just not pushing any more beta builds for 7.0.x. From the thread, I would expect the builds to continue with versions 7.1.0 and 8. In any case, if Docker would still work on M1, I would not see this as an urgent motivation to move away from Vagrant.
No, it does not. I don't want to have files from apache, postgres etc. spread across my host filesystem, so I mock up a file system for these tools by using a container - exactly what containers are meant to do.
I think we would have to see an actual setup before judging this. My intuition would be that there isn't really a way to reduce complexity of the setup, afterall, we are just setting everything up as we need it. The configuration could possible be more robust with a declarative configuration instead of our imperative bash script though - again, would have to see a working setup.
How? Where does all the code we currently have go?
Tempting, but I don't think plain docker is the way for reproducibility. If we run
Interesting idea, I think that would be very cool, if it is turns out faster to setup than building it yourself.
I don't see how it would be better than our single-layer docker image that is used by vagrant where we only have exactly the stuff that we need and is only rarely rebuilt. We have talked about this before. There are some requirements for the development setup that vagrant has solved really well where other tools do not work too great:
That said, I think you are well aware that I am also not too happy with our bash script that occasionally swallows errors from commands either. I have been looking into packaging evap with nix for some time now and I like to think that once I could get it to work, it would solve all problems. However, I can't really argue that it is better than what we currently have before I really have something to play around with and there are also some tradeoffs that I haven't made up my mind about yet. The way I see it, is that there is no reason to abandon vagrant currently before we are sure that the next solution would really improve the aspects we are trying to fix. In that sense, I gladly take a look at any suggested changes to the setup, but can't promise that I will agree with them and even less that we get a consensus to merge it into evap. If I recall correctly, you did start to write a docker-compose file for evap some time back? What happened to that? |
Additional stuff I'd like to point out:
Overall, I think you blame Vagrant for a lot of problems that it is not responsible for. Our current provisioning script is runnable documentation of how to setup an instance of evap. In the deployment folder, we currently have ~230 lines of setup-logic and configuration templates that are actively used and thus tested during each development-box-setup-procedure. In the developer box, we have a correctly named user with the correct permissions, and we provide python with a venv git, bash with autocompletion and colored output, access to the management script, apache with a working configuration and mod-wsgi, postgres, redis, the possibility to test production updates and rollbacks, the correct version of node.js, and the option to run frontend tests. We have all common linux tools available for debugging. (note: list non-exhaustive). In short: We provide executable setup instructions for a developer box for people wanting to develop evap. Vagrant allows us to turn these instructions into a ready-to-go environment with a 10-letter command ( The developer-box in some way mismatches docker principles because we want to use it as an interactive environment while docker wants a container to non-interactively run one service while "removing" the environment. However, dropping Vagrant and VirtualBox doesn't change anything about this mismatch. We could remove Vagrant from the equation by just copy&pasting the handful of docker commands that it currently issues for us and it would not improve the situation. That said: For most work on EvaP, you are completely free to build your own development setup the way you would like it to be. If you can replace everything with a 15 line Dockerfile, feel free to do that and use it. Just be aware that we will not easily merge a PR into our codebase if it lacks main features that the current development box has. |
There are several vagrant issues on my setup.
VBox even discontinued the arm version for macOS: https://www.virtualbox.org/ticket/21771
So we can assume, arm will not be supported for Arm Guest/Arm Host for Win and Linux hosts.
Also, using docker with vagrant abuses the container idea.
We also had some discussion about testing setups. If we would fully change to a container setup we would reduce the dev setup complexity. We are currently using containers in CI. All provisioning could go into an 15 line Dockerfile. We could have an idiot-proof, reproducible docker-compose file. For new members, we could provide a prebuild development docker container to speedup setup. If we do not want to be responsible for a container. We do not need this option. Docker benefits from docker-layer-caching, to speedup rebuilds and save storage.
I am very frustrated from a lot of breaking changes in my setup. It takes all the energy I would like to put into EvaP. Despite, I have to find a hack every to have a working setup to get around a broken setup. This week is the third in a row. The third is probably an error on Canonicals site. docker-compose/podman-compose is the de facto standard in this area. Vagrant is niche, so troubleshooting is way more difficult and annoying. Maybe we can try to create a docker compose setup for testing and developer feedback?
The text was updated successfully, but these errors were encountered: