bedrocklinux / bedrocklinux-userland

This tracks development for the things such as scripts and (defaults for) config files for Bedrock Linux
https://bedrocklinux.org
GNU General Public License v2.0
614 stars 67 forks source link

Build in a container? #218

Closed vsoch closed 2 years ago

vsoch commented 3 years ago

Hi! Apologies if this is a naive question, but would bedrock linux work to build in a container? I'd like to try it out, of course without blowing up any of my current machines. Thanks for your help!

ghost commented 3 years ago

Are you asking if you can build Bedrock in a container, or are you asking if you can build using a Bedrock container?

vsoch commented 3 years ago

If I can build Bedrock in a container (is there such a thing that already exists as a Bedrock container?). I saw some discussion in another issue about containers in CI (and needing a VM with qemu) so I'm wondering if it's even possible (and if not, why not, what would need to be done so it is?)

ghost commented 3 years ago

By "Bedrock container", I meant a container hijacked with Bedrock. Since Bedrock is C code and bash, and I've used containers to build things all the time, I don't see how it wouldn't work. I've never tried it though. The containers in CI discussion was us talking about testing Bedrock hijacking in a container, not whether it would build.

vsoch commented 3 years ago

Ah okay! I can test it out then. I ask because there was another flavor of Linux a few years ago (I can't remember now) that wouldn't have worked in a container. So I wanted to check that it would be safe to do in a Docker container, for example, without doing any damage to the host.

paradigm commented 3 years ago

I share WinterWarp's confusion as to whether the question here is about building a Bedrock hijack installer/update in a container environment or if it is about installing Bedrock in a container environment.

If the question is about building Bedrock in a container environment, that should be fine. It's mostly just compiling C code.

If the question is about installing the current Bedrock 0.7 release in a container, that depends largely on the container's specifics. Bedrock is itself built around similar technologies to containers which, depending on the host container's specifics, may not nest well. Bedrock will not work, for example, in a straight chroot. If your goal is to simply try Bedrock out, I recommend a VM rather than a container for the time being.

A goal for the upcoming Bedrock 0.8 release is an official container-ish solution. That's likely still quite a ways off.

cptpcrd commented 3 years ago

So I wanted to check that it would be safe to do in a Docker container, for example, without doing any damage to the host.

Trying to set up Bedrock in a Docker container shouldn't damage the host (unless you start disabling Docker's isolation methods); it just probably won't work.

vsoch commented 3 years ago

I think I would likely want to build and then install it (in Docker?). I can definitely wait until 0.8 if there is some chance of messing something up.

Ah just see your message - gotcha. Is there an issue open for creating this container? If not, we can rename the title here to be specific to it. I can definitely offer to test when the time comes!

paradigm commented 3 years ago

Is there an issue open for creating this container?

Not at the moment.

For most of Bedrock's history, the project was not GitHub-oriented. Given Bedrock's letting users get features from as many distros as is feasible, I was amenable to arguments that I should maximize choice for how people interact with the project as well. Some people like GitHub, so I made an optional presence here. Others don't, and so I made a point not to require it. (Some like reddit, some don't, etc). I've accepted things like patch files linked to me over IRC in the past. The only source I expect users to interact with is the project website at https://bedrocklinux.org, which seems acceptable to a broad audience. I documented the container idea on the website at... it was supposed to be here but apparently I failed to mention it. Amongst other things, it's needed as part of this feature to run brl fetch while installing.

As highlighted by the failure to document the container plans on the website, my attempt to be the single source cross-compiling issues and plans reported all over the place has stretched me too thin. Moreover, I worry it is one of the reasons the contributor base is so small despite interest and time. This model was fine a decade ago when Bedrock attracted a much smaller user base, but is clearly no longer feasible. I do not plan to maintain this model going forward.

For this effort the website back-end is going to need a major rework. As part of that effort, maybe we should have the website's server pull GitHub issues and re-host them. This way, people who are allergic to GitHub for whatever reason don't need to touch it, but people who assume the project is GitHub can continue to use it as they expect. I can then create tracking issues for things like the container, or if I forget, others like yourself who do not have write access to the website can easily do so.

I have more pressing tasks I need to take care of first, but that's certainly something that I can look into eventually, or possibly an effort someone else leads, if anyone is interested and equipped to do so.

I can definitely offer to test when the time comes!

Once 0.8 Naga is far enough along for anyone to test anything, I'll definitely mention it on https://bedrocklinux.org/, likely in https://bedrocklinux.org/0.8/.

I'd like Naga's development to be test driven, and system tests will require this container effort; the container thing will likely be one of the first parts written. However, it won't be very interest to test until much more of Naga is written.

vsoch commented 2 years ago

I probably won't get around to testing this, so we are OK to close the issue. Sorry for the noise!