about summary refs log tree commit diff
path: root/tools/nixery/static/index.html
blob: 8cbda7360ef950cc94160e62ae9bbc2478adb4bc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Nixery</title>
    <style>
      body {
        margin: 40px auto;
        max-width: 650px;
        line-height: 1.6;
        font-size: 18px;
        color: #444;
        padding: 010px
      }

      .logo {
          max-width: 650px;
      }

      h1, h2, h3 {
        line-height: 1.2
      }
    </style>
  </head>
  <body>
    <header>
      <div align="center">
        <img class="logo" src="nixery-logo.png">
      </div>
      <aside>ad-hoc container images - powered by <a href="https://nixos.org/nix/">Nix</a></aside>
      <hr>
    </header>

    <p>
      This is an instance
      of <a href="https://github.com/google/nixery">Nixery</a>, which
      provides the ability to pull ad-hoc container images from a
      Docker-compatible registry server. The image names specify the
      contents the image should contain, which are then retrieved and
      built by the Nix package manager.
    </p>
    <p>
      Nix is also responsible for the creation of the container images
      themselves. To do this it uses an interesting layering strategy
      described in
      <a href="https://grahamc.com/blog/nix-and-layered-docker-images">this blog post</a>.
    </p>
    <h3>How does it work?</h3>
    <p>
      Simply point your local Docker installation (or other compatible
      registry client) at Nixery and ask for an image with the
      contents you desire. Image contents are path separated in the
      name, so for example if you needed an image that contains a
      shell and <code>emacs</code> you could pull it as such:
    </p>
    <p>
      <code>nixery.appspot.com/shell/emacs25-nox</code>
    </p>
    <p>
      Image tags are currently ignored. Every package name needs to
      correspond to a key in the
      <a href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/all-packages.nix">nixpkgs package set</a>.
    </p>
    <p>
      The special meta-package <i>shell </i> provides default packages
      you would expect in an interactive environment (such as an
      interactively configured bash). If you use this package
      you <b>must</b> specify it as the first package in an image.
    </p>
    <h3>FAQ</h3>
    <ul>
      <li>
        <strong>Where is the source code for this?</strong>
        <br>
        Over <a href="https://github.com/google/nixery">on Github</a>.
      </li>
      <li>
        <strong>Which revision of <code>nixpkgs</code> is used?</strong>
        <br>
        Nixery imports a Nix channel
        via <code>builtins.fetchTarball</code>. Currently the channel
        to which this instance is pinned is NixOS 19.03.
      </li>
      <li>
        <strong>Is this an official Google project?</strong>
        <br>
        <strong>No.</strong> Nixery is not officially supported by
        Google.
      </li>
      <li>
        <strong>Who made this?</strong>
        <br>
        <a href="https://github.com/tazjin">tazjin</a>
      </li>
    </ul>
  </body>
</html>