Devcontainer workflow question

I just found out about devcontainers thanks to bluefin, and it’s very cool! Can’t believe I’ve never seen it.

There is one thing I’m concerned about though. I’m guessing the expectation is to run separate devcontainers for each project as opposed to reusing a single one. While this provides better isolation between projects, I’m finding it a little frustrating that I need separate containers for projects with similar (or the same) dependencies/requirements, and also that I need to perform some initial setup repeatedly on each container (setting up some aliases/plugins on fish, logging in via firebase cli, etc). It might be possible to automate these steps and include them in each devcontainer.json, but I can’t help but think that it could be simpler. I suppose devcontainers are really aimed at projects where a devcontainer.json is already set up, rather than for what I’m used to, which is installing dependencies and doing configurations once in a distrobox container and then using that one container in most cases, kind of mimicking how one would work traditionally without containers.

But this then makes me confused on what’s the best/preferred way to use the default VS code instance on bluefin-dx without relying on devcontainers? Do I just distrobox enter ... my preferred container whenever I open a VS code terminal? Or should I install a separate VS code instance in the container and use that instead? All in all, I think I might be misunderstanding the expected workflow(s) a little bit, so any wisdom on this would be appreciated! :laughing:

Hey there! The VS Code team actually has some good advice on using one devcontainer to handle multiple projects with similar requirements.

TL;DR: keep a devcontainer.json and Containerfile (Dockerfile) in a folder above those containing your similar projects and run Dev Containers: Open Folder in Container… from the Command Palette (F1). Once your Dev Container is up and running, open your desired project folder.

Would that be a usable option for you?

3 Likes

Maybe we should also start shipping the CLI? GitHub - devcontainers/cli: A reference implementation for the specification that can create and configure a dev container from a devcontainer.json.

1 Like

Hey, that seems like a good solution! Thanks for pointing it out. It would be even nicer if it was possible to simply open any folder, regardless of where the container.json resides. I found this page which explains a way to do it but I think it’s a bit of a complicated way to do what I want.

1 Like

Here’s a fresh video from Craig Peters that dropped today:

That was a great video, gives a lot more clarity to all those moving peaces… Do you know Craig?
So in Bluefin we have Devpod as a local opensource alternative to github spaces and podman instead of Docker.
So to experiment with Devpod and a project - like this one GitHub - Anjok07/ultimatevocalremovergui: GUI for a Vocal Remover that uses Deep Neural Networks. - I should create a devcontainer.json file for this project right ? I’m looking into it.
It could really solve so much of those versions problems I’m always having when trying to mess with some python projects…

Yeah I think we need to look at adding the devcontainer cli tool too, hoping to find time to do that soon!

ok great, sounds good :pray: @j0rge
I’ll be on the lookout!