| 
									
										
										
										
											2017-09-04 19:02:44 -04:00
										 |  |  | # This test runs docker and checks if simple container starts | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-07 11:08:58 +01:00
										 |  |  | import ./make-test-python.nix ({ pkgs, ...} : { | 
					
						
							| 
									
										
										
										
											2017-09-04 19:02:44 -04:00
										 |  |  |   name = "docker"; | 
					
						
							|  |  |  |   meta = with pkgs.stdenv.lib.maintainers; { | 
					
						
							|  |  |  |     maintainers = [ nequissimus offline ]; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   nodes = { | 
					
						
							|  |  |  |     docker = | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |       { pkgs, ... }: | 
					
						
							| 
									
										
										
										
											2017-09-04 19:02:44 -04:00
										 |  |  |         { | 
					
						
							|  |  |  |           virtualisation.docker.enable = true; | 
					
						
							|  |  |  |           virtualisation.docker.package = pkgs.docker-edge; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           users.users = { | 
					
						
							|  |  |  |             noprivs = { | 
					
						
							|  |  |  |               isNormalUser = true; | 
					
						
							|  |  |  |               description = "Can't access the docker daemon"; | 
					
						
							|  |  |  |               password = "foobar"; | 
					
						
							|  |  |  |             }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             hasprivs = { | 
					
						
							|  |  |  |               isNormalUser = true; | 
					
						
							|  |  |  |               description = "Can access the docker daemon"; | 
					
						
							|  |  |  |               password = "foobar"; | 
					
						
							|  |  |  |               extraGroups = [ "docker" ]; | 
					
						
							|  |  |  |             }; | 
					
						
							|  |  |  |           }; | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   testScript = ''
 | 
					
						
							| 
									
										
										
										
											2019-11-07 11:08:58 +01:00
										 |  |  |     start_all() | 
					
						
							| 
									
										
										
										
											2017-09-04 19:02:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-07 11:08:58 +01:00
										 |  |  |     docker.wait_for_unit("sockets.target") | 
					
						
							|  |  |  |     docker.succeed("tar cv --files-from /dev/null | docker import - scratchimg") | 
					
						
							|  |  |  |     docker.succeed( | 
					
						
							|  |  |  |         "docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10" | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |     docker.succeed("docker ps | grep sleeping") | 
					
						
							|  |  |  |     docker.succeed("sudo -u hasprivs docker ps") | 
					
						
							|  |  |  |     docker.fail("sudo -u noprivs docker ps") | 
					
						
							|  |  |  |     docker.succeed("docker stop sleeping") | 
					
						
							| 
									
										
										
										
											2017-09-04 19:02:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # Must match version twice to ensure client and server versions are correct | 
					
						
							| 
									
										
										
										
											2019-11-07 11:08:58 +01:00
										 |  |  |     docker.succeed('[ $(docker version | grep ${pkgs.docker-edge.version} | wc -l) = "2" ]') | 
					
						
							| 
									
										
										
										
											2017-09-04 19:02:44 -04:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | }) |