uuid: - value: 8b84ccf4-bb4b-48fd-8009-2c2641466185 langcode: - value: en type: - target_id: daily_email target_type: node_type target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7 revision_timestamp: - value: '2025-05-11T09:00:38+00:00' revision_uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 revision_log: { } status: - value: true uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 title: - value: | Docker or Nix? created: - value: '2023-07-02T00:00:00+00:00' changed: - value: '2025-05-11T09:00:38+00:00' promote: - value: false sticky: - value: false default_langcode: - value: true revision_translation_affected: - value: true path: - alias: /daily/2023/07/02/docker-or-nix langcode: en body: - value: |

I've been a Nix user for about a year, starting with its package manager on my previously installed Linux distribution.

I started to use Home Manager for my user configuration and dotfiles and later switched to the NixOS operating system.

Using Nix for software development

I've also been using Nix Flakes for per-project configuration.

A Flake file is a simple file written in the Nix language that defines the project's dependencies and installs them from the Nix package manager.

Here is an example Flake for a PHP CLI application:

{
        inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

        outputs = inputs@{ flake-parts, ... }:
          flake-parts.lib.mkFlake { inherit inputs; } {
            systems = [ "x86_64-linux" ];

            perSystem = { config, self', inputs', pkgs, system, ... }: {
              devShells = {
                default = pkgs.mkShell {
                  buildInputs = with pkgs; [ php82 php82Packages.composer ];
                };
              };
            };
          };
      }
      

It declares that PHP 8.2 and Composer are available, even if I have different versions installed globally.

Will Nix replace Docker?

Nix and Flakes have replaced Docker for me on some projects.

If I have a simple setup and need a specific version of PHP or Node and some additional programs, I can get those from the Flake.

I don't know if it'll replace Docker for me completely and work on more complex projects, but it's working well for me where I'm using it.

format: full_html processed: |

I've been a Nix user for about a year, starting with its package manager on my previously installed Linux distribution.

I started to use Home Manager for my user configuration and dotfiles and later switched to the NixOS operating system.

Using Nix for software development

I've also been using Nix Flakes for per-project configuration.

A Flake file is a simple file written in the Nix language that defines the project's dependencies and installs them from the Nix package manager.

Here is an example Flake for a PHP CLI application:

{
        inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

        outputs = inputs@{ flake-parts, ... }:
          flake-parts.lib.mkFlake { inherit inputs; } {
            systems = [ "x86_64-linux" ];

            perSystem = { config, self', inputs', pkgs, system, ... }: {
              devShells = {
                default = pkgs.mkShell {
                  buildInputs = with pkgs; [ php82 php82Packages.composer ];
                };
              };
            };
          };
      }
      

It declares that PHP 8.2 and Composer are available, even if I have different versions installed globally.

Will Nix replace Docker?

Nix and Flakes have replaced Docker for me on some projects.

If I have a simple setup and need a specific version of PHP or Node and some additional programs, I can get those from the Flake.

I don't know if it'll replace Docker for me completely and work on more complex projects, but it's working well for me where I'm using it.

summary: null field_daily_email_cta: { }