Hacker News new | ask | show | jobs
by pocketarc 825 days ago
This looks pretty good. Being able to use devcontainers on local server hardware without monthly fees (and/or hetzner servers) sounds great.

Up until now we’d been making do with docker-compose and JetBrains’s remote SSH dev; this should be significantly better.

3 comments

I spent more than a year living with the numerous downsides of high level CDE (containerized development environment) tools. I must admit that I am very skeptical about all options available right now and that I have rolled back to using plain, old school, docker compose based CDE.

Both .devcontainers and .devfile managed to create more effort than they took away. Some key points:

- long lived containers

- abstracting away the fact that you run stuff inside containers in the IDE and abstracting away the container life cycle

- cryptic error states and error messages, especially when setting up new projects from scratch. This often boiled down to bad plugins (even Microsoft's own VSCode plugins wet the bed often)

- only superficial support for podman

- bad support for arm based HW (and arch translation issues, like a tool requesting arm containers but the host running docker is x64)

At this point I consult teams to try out a plain compose.yml as a CDE and skip the "enterprise" stuff.

This seems to be podman focused from what I see.
No, not really. A big part of the problem is half baked software on the client side.

For devcontainers even the reference implementation CLI is significantly incomplete.

You still cannot stop, remove or update a Dev container from CLI and there at numerous issues with the rest of the implemented features.

[0]: https://github.com/devcontainers/cli?tab=readme-ov-file#cont...

> JetBrains’s remote SSH dev;

Does that require a static ip on remote?

I have skimmed the Jetbrain FAQ [1] and it says "no relay servers are involved"

[1] https://www.jetbrains.com/help/idea/faq-about-remote-develop...

No, it's able to use your local ssh_config. For example, I use this to connect to a host running on aws via ssm. The vm isn't reachable at all directly.

You can use something like the following in your ~/.ssh/config:

    Host devhost
        ProxyCommand        aws --profile DevProfile ssm start-session --target i-0123456789abcdef0 --document-name AWS-StartSSHSession --parameters "portNumber=22"
You then tell intellij to connect to "devhost". This also works under recent versions of Windows (those which ship with openssh).
ipv6 is perfect for this use case, every development VM is directly reachable.
If this is what I think it is, Visual Studio Code has an extension that does this as well.