Hacker News new | past | comments | ask | show | jobs | submit login

I started to develop in containers before VSCode introduced the dev container to keep my local machine clean. A few years ago, I switched to the VSCode dev container, and the integration is very good. Having the ability to have a dev environment ready per project is very neat. We started to adopt it in my company. As a team it saves a lot of hassle, and onboarding is much faster. However, we have encountered some issues, mainly when we want to work with GPU and PyTorch dependencies, and that is the opposite of pleasant! Otherwise, now each new project/repo I create comes with a dev container.



Recently went from using devcontainers to nix-shell. But in every new project I include instructions for both nix-shell + direnv as well as dev containers, so people can fully ignore nix if they choose.

A form of this which mixes devcontainer and nix might be the holy grail

https://www.youtube.com/watch?v=kpBXrsVg83Y&t=941s

Positives

- You lean on the power of dev containers while still using a portable spec

- You get access to nixpkgs which is arguably the most exhaustive package library

- You get the "true reproducibility" of nix over docker

Negatives

- Docker remains the king for ephemeral databases, more convoluted to manage with nix


I use devenv.sh and generate oci containers out of it, which give me kinda the best of both worlds!

(nobody in my team use vscode or devcontainers but enjoy using docker)


This is old, but wondering if you had any publicly available project setup this way. Thanks


Nix sounds like a great fit as well, but my experience with it has not been that great, and I feel it is not ideal for Python. I recently gave Flox a try, which simplifies the use of Nix. I use it from time to time, but it has not yet replaced my development environment.

In your case, is maintaining 2 dev env not annoying?


Sorry late reply,

Yes it is annoying to maintain 2 separate environments, but it's also not my end goal. A perfect solution for me would be a spec that is IDE agnostic, but also works as a VSCode dev container, all from a common source.

Maybe it's an unrealistic goal. But I've actually enjoyed trying and failing with nix so far, so it hasn't been too much of a burden.


We were building something very similar to this in collaboration with the VSCode teams a while back at Meta. The goal was to get development on demand via hooking into some beefy linux server farm shile having VSCode stay as the local experience. Though one of the problems even back then was similar to what you are mentioning. It did however remove all last mile network reliance during lockdown which was a plus.


same here, from dev container to just docker here, works well




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: