1# This test runs docker-registry and check if it works
2
3import ./make-test.nix ({ pkgs, ...} : {
4 name = "docker-registry";
5 meta = with pkgs.stdenv.lib.maintainers; {
6 maintainers = [ offline ];
7 };
8
9 nodes = {
10 registry = { config, pkgs, ... }: {
11 services.dockerRegistry.enable = true;
12 services.dockerRegistry.port = 8080;
13 services.dockerRegistry.host = "0.0.0.0";
14 networking.firewall.allowedTCPPorts = [ 8080 ];
15 };
16
17 client1 = { config, pkgs, ...}: {
18 virtualisation.docker.enable = true;
19 virtualisation.docker.extraOptions = "--insecure-registry registry:8080";
20 };
21
22 client2 = { config, pkgs, ...}: {
23 virtualisation.docker.enable = true;
24 virtualisation.docker.extraOptions = "--insecure-registry registry:8080";
25 };
26 };
27
28 testScript = ''
29 $client1->start();
30 $client1->waitForUnit("docker.service");
31 $client1->succeed("tar cv --files-from /dev/null | docker import - scratch");
32 $client1->succeed("docker tag scratch registry:8080/scratch");
33
34 $registry->start();
35 $registry->waitForUnit("docker-registry.service");
36 $client1->succeed("docker push registry:8080/scratch");
37
38 $client2->start();
39 $client2->waitForUnit("docker.service");
40 $client2->succeed("docker pull registry:8080/scratch");
41 $client2->succeed("docker images | grep scratch");
42 '';
43})