I agree that dockerfile’s are not very reproducible. But honestly, that’s not how most people use it. I believe most people just pull the already built image which is very reproducible. Anyways, I found this video interesting and thought I’d share it and get your guys thoughts.

  • Nate Cox
    link
    English
    38 months ago

    Honestly the great failing of nix is that the new user experience is utterly terrible. I personally bounced off nix several times before I finally just grit my teeth and embraced the suck.

    I think the best you can really do is look at the community. The nix project does have documentation but it is indecipherable, and I say this as someone who mostly likes nix and uses it daily.

    https://zero-to-nix.com is a pretty good resource. I think they’re trying a bit hard to “framework” nix that maybe isn’t my preference, but the getting started guide is the best I’ve found so far.

    Also, use your search engine of choice to find articles on nix, home-manager, nix-darwin (if you’re using a Mac), and find repos out there of other people’s dotfiles. Then get used to confusion and frustration for a while.

    I still think that it has been worth it for me, personally… but there is real pain in the learning.

    • Maurice Van Wassenhove
      link
      fedilink
      28 months ago

      @natecox It is exactly this steep learning curve that pushed me away from nix and NixOS.

      It’s amazing what it can do but I just do not have the time and commitment to learn it. In the end, nix should be a tool and not a skill to master.

    • SciPiTie
      link
      fedilink
      English
      18 months ago

      Thanks for the link and tips! Do you have something similar specific to flakes? The basic concepts seem straight forward and actually chatgpt was of great help so far - but I can’t get the feet on the ground with these fancy new packages :D

      • Nate Cox
        link
        English
        28 months ago

        I learned to use them by looking at repos online that came with a flake.nix.

        Also there’s this blog article that was helpful getting started: https://tonyfinn.com/blog/nix-from-first-principles-flake-edition/nix-7-what-about-flakes-then/

        Flakes aren’t much different from regular nix configs, except that they explicitly declare their sources by url. Rather than using whatever “home-manager” your system has on it, the flake says “go get home-manager from this location and use it”.

        The extra level of control makes for more reproducible configs by isolating dependencies from the system paths. At least in theory.