Docker and Nix build configurations - #53
Conversation
|
I need to think whether it's worth keeping this in this repo or in a separate one. I'll look into it further and get back to you. |
No worries! If you'd rather have this in a separate repository that's completely feasible. That said, it would most likely end up being a hassle for anyone that wants to build their own modified source tree, given both Nix and Docker would have to fetch the Git repository. As such, I personally do think it would make most sense to keep this in the main repository, allowing it to serve as a straightforward developer utility. Otherwise, developers relying on the Nix or Docker environments would have to edit the configurations to fetch their own forks (also fetching hashes on Nix), adding the complexity of source control to the build process. This isn't something you have to worry about when just building on your host environment using CMake, but for users of Nix and atomic systems that would be a hassle (systems with OSTree require reboots in order to install packages on host, for example.) You should see the Docker and Nix configurations as solutions similar to VSCode's Dev Containers, just as much as ways to get Doriax running on Nix and atomic systems in the first place. Essentially, just ways to build the project without worrying about source control and package management. |
|
Before I merge, can you do these small changes?
One of my concerns is keeping all of this up to date. Can you help me with that? |
Pushed all the changes you requested, hopefully it's alright now.
As for this, I'll have to maintain this package in order to run Doriax on my system, so I don't mind at all. I'll try to set up some workflows to run on my fork to keep things like the |
|
I created a CI and did some changes here 949064f |
This pull request provides an OCI compose file which builds the project via newly added images for Nix and Fedora. Further, a Nix Flake package is added as well, which abstracts the build process in a reproducible way, and allows the package to be installed easily across systems with support for Nix.
The Nix package should provide a way to more easily debug and reproduce issues, given the entire environment is atomic, and works on most Linux distributions. Essentially, it can used to provide common consensus across contributors.
Users that do not have Nix installed on their system can instead build the Nix Flake package using Docker.