daily-email: add 2023-07-02
Docker or Nix?
This commit is contained in:
		
							parent
							
								
									3499317ded
								
							
						
					
					
						commit
						8f40eca065
					
				
					 1 changed files with 51 additions and 0 deletions
				
			
		
							
								
								
									
										51
									
								
								src/content/daily-email/2023-07-02.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src/content/daily-email/2023-07-02.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,51 @@ | |||
| --- | ||||
| title: > | ||||
|   Docker or Nix? | ||||
| pubDate: 2023-07-02 | ||||
| permalink: > | ||||
|   archive/2023/07/02/docker-or-nix | ||||
| tags: | ||||
|   - docker | ||||
|   - nix | ||||
| --- | ||||
| 
 | ||||
| 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: | ||||
| 
 | ||||
| ```nix | ||||
| { | ||||
|   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. | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue