I’ve recently started to get into containerized development (of LaTeX documents for now) using VSCode with the Dev Containers Extension. While compilation and everything works fine, I’m a bit annoyed by the very barebones shell of my podman container in the integrated terminal. I’m used to zsh with syntax highlighting and autocompletion, I like to use neovim to write my commit messages (even when I’m using VSCode to write my code) and of course I need git and ssh to push to my git forge.

I wonder if it is recommended to

  1. install neovim, zsh, ssh, git inside the dev container using the package manager (apt in this case) and manually write some config files
  2. Specify the installation of those packages in the Containerfile for my dev container and configure the devcontainer.json to mount my host’s config files
  3. Use those tools from outside my dev container somehow
  4. Just not use any convenience tools like zsh, neovim, with individual config even, and only install purely functional packages like git and ssh in the container?

Since I’m not a software developer by training (trying to become one right now) I’d be very happy about some best practices or recommendations.

  • setsubyou@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    20 days ago

    I basically do option 2, but I’d never mount all my configuration. If I want an isolated environment, I’m not making all my ssh keys available to it. So some things have to stay outside for me.

  • jokro@feddit.org
    link
    fedilink
    arrow-up
    2
    ·
    20 days ago
    1. and 3. sound like sensible options. Though none of the options is inherently wrong. But the first one doesn’t sound easily reproduceable.

    For 2: see the other comment https://feddit.org/post/25212909/11301373

    For 3: i think you can also create a “host” terminal in vscode? (Maybe i’m remembering wrong). Then you can simply cd to your project and use git etc as usual

  • secana@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    12 days ago

    It sounds like you don’t want a dev container but a dev shell. Have a look at Nix flakes. This allows you to ship your dev environment as code but without the hassle of running inside a container. All your local tools will work and pickup whatever you configured in the flake.