30 lines
		
	
	
		
			698 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			30 lines
		
	
	
		
			698 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| 
								 | 
							
								# Test Docker containers as systemd units
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import ./make-test.nix ({ pkgs, lib, ... }: {
							 | 
						||
| 
								 | 
							
								  name = "docker-containers";
							 | 
						||
| 
								 | 
							
								  meta = {
							 | 
						||
| 
								 | 
							
								    maintainers = with lib.maintainers; [ benley ];
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  nodes = {
							 | 
						||
| 
								 | 
							
								    docker = { pkgs, ... }:
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        virtualisation.docker.enable = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        virtualisation.dockerPreloader.images = [ pkgs.dockerTools.examples.nginx ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        docker-containers.nginx = {
							 | 
						||
| 
								 | 
							
								          image = "nginx-container";
							 | 
						||
| 
								 | 
							
								          ports = ["8181:80"];
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  testScript = ''
							 | 
						||
| 
								 | 
							
								    startAll;
							 | 
						||
| 
								 | 
							
								    $docker->waitForUnit("docker-nginx.service");
							 | 
						||
| 
								 | 
							
								    $docker->waitForOpenPort(8181);
							 | 
						||
| 
								 | 
							
								    $docker->waitUntilSucceeds("curl http://localhost:8181|grep Hello");
							 | 
						||
| 
								 | 
							
								  '';
							 | 
						||
| 
								 | 
							
								})
							 |