Some folks on the internet were interested in how I had managed to ditch Docker for local development. This is a slightly overdue write up on how I typically do things now with Nix, Overmind and Just.

  • Hexarei@programming.dev
    link
    fedilink
    English
    arrow-up
    12
    ·
    1 year ago

    If your dev documentation includes your devs running docker build, you’re doing docker wrong.

    The whole point is that you can build a working container image and then ship it to a registry (including private registries) so that your other developers/users/etc don’t have to build them and can just run the existing image.

    Then for development, you simply use a bind mount to ensure your local copy of the code is available in the container instead of the copy the container was built with.

    That doesn’t solve the performance issues on Windows and Mac, but it does prevent the “my environment is broke” issues that docker is designed to solve

    • Jeezy@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      The whole point is that you can build a working container image and then ship it to a registry (including private registries) so that your other developers/users/etc don’t have to build them and can just run the existing image.

      Agreed, we still do this in the areas where we use Docker at day job.

      I think the mileage with this approach can vary depending on the languages in use and the velocity of feature iteration (ie. if the company is still tweaking product-market fit, pivoting to a new vertical, etc.).

      I’ve lost count of the number of times where a team decides they need to npm install something with a heavy node-gyp step to build native modules which require yet another obscure system dependency that is not in the base layer. 😅