this post was submitted on 12 Aug 2023
129 points (88.6% liked)
Programming
17444 readers
141 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
This is quite interesting. Is the devcontainer spec tightly coupled to VS Code, or is it something that other IDEs do/can support?
Well, to be honest, I have a Docker Compose setup I use with Neovim anyway so I don't know what the benefits are of devcontainer compared to that.
I think it was created by the same people as VS Code, and definitely designed around its needs (at least initially), kind of like the Language Server Protocol.
There is some preliminary support in IntelliJ - https://blog.jetbrains.com/idea/2023/06/intellij-idea-2023-2-eap-6/#SupportforDevContainers, but then it wasn't mentioned in the normal 2023.2 release notes, not sure if they pushed it to a future release or what. Either way, it's a work in progress there.
Then there are tools like https://devpod.sh/ that also use devcontainters.
Regarding how it's different from just using compose directly, I think the idea is that you "connect" your IDE to it and it specifies things like extensions (obviously IDE-specific), debuggers and debug configurations, language servers setup, environment to use when you open a terminal into it, etc.
Judging by the big
© Microsoft 2022
logo in the bottom right, I'd say you're right.I guess this is one of those things I'm not going to appreciate until I need it, but none of that sounds more appealing to me over Docker Compose. I'm not sure how debuggers, etc,. would even apply to the server or why you would need to use a cloud server rather than running the services locally for a development environment. My guess is this would be a lot more useful for Windows users who don't have as easy access to the right dependencies?
The main pitch is that you don't have to spend time and effort with installing and configuring a project for development when onboarding new people to it, or when you want to contribute to someone else's project etc.
You get a proven, up-to-date "works on my machine" kind of environment that others also use, and you don't need to "pollute" your host system by installing additional tools necessary for each individual project. Compilation (and other build steps), running the project, running the tests, debugging, IDE configuration (e.g. language servers, linter plugins), etc. all happen inside the container.
I personally don't find it all that useful for projects I'm working on long-term myself, but it's nice if you need to check something in someone else's project which you're not that familiar with.