diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2018-10-02 18:22:37 +0200 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2018-10-02 18:22:37 +0200 |
commit | 6ce04af13736e5a4a60cbb703507381f561bb13c (patch) | |
tree | 7d1f67eaaf95d67fd9002c05e21932c012facfba /doc | |
parent | 9d5a1ab426d81b3a84d1ec3ff4f22b057f253f02 (diff) | |
parent | 4d1abc44199c8957105f538119c2d19d67aee26f (diff) | |
download | nixlib-6ce04af13736e5a4a60cbb703507381f561bb13c.tar nixlib-6ce04af13736e5a4a60cbb703507381f561bb13c.tar.gz nixlib-6ce04af13736e5a4a60cbb703507381f561bb13c.tar.bz2 nixlib-6ce04af13736e5a4a60cbb703507381f561bb13c.tar.lz nixlib-6ce04af13736e5a4a60cbb703507381f561bb13c.tar.xz nixlib-6ce04af13736e5a4a60cbb703507381f561bb13c.tar.zst nixlib-6ce04af13736e5a4a60cbb703507381f561bb13c.zip |
Merge master into staging
Diffstat (limited to 'doc')
-rw-r--r-- | doc/functions.xml | 171 | ||||
-rw-r--r-- | doc/package-notes.xml | 7 |
2 files changed, 173 insertions, 5 deletions
diff --git a/doc/functions.xml b/doc/functions.xml index 0c0d82b0342c..8223a8b0531c 100644 --- a/doc/functions.xml +++ b/doc/functions.xml @@ -682,6 +682,177 @@ hello latest de2bf4786de6 About a minute ago 25.2MB </example> </section> + <section xml:id="ssec-pkgs-dockerTools-buildLayeredImage"> + <title>buildLayeredImage</title> + + <para> + Create a Docker image with many of the store paths being on their own layer + to improve sharing between images. + </para> + + <variablelist> + <varlistentry> + <term> + <varname>name</varname> + </term> + <listitem> + <para> + The name of the resulting image. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <varname>tag</varname> <emphasis>optional</emphasis> + </term> + <listitem> + <para> + Tag of the generated image. + </para> + <para> + <emphasis>Default:</emphasis> the output path's hash + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <varname>contents</varname> <emphasis>optional</emphasis> + </term> + <listitem> + <para> + Top level paths in the container. Either a single derivation, or a list + of derivations. + </para> + <para> + <emphasis>Default:</emphasis> <literal>[]</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <varname>config</varname> <emphasis>optional</emphasis> + </term> + <listitem> + <para> + Run-time configuration of the container. A full list of the options are + available at in the + <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions"> + Docker Image Specification v1.2.0 </link>. + </para> + <para> + <emphasis>Default:</emphasis> <literal>{}</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <varname>created</varname> <emphasis>optional</emphasis> + </term> + <listitem> + <para> + Date and time the layers were created. Follows the same + <literal>now</literal> exception supported by + <literal>buildImage</literal>. + </para> + <para> + <emphasis>Default:</emphasis> <literal>1970-01-01T00:00:01Z</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <varname>maxLayers</varname> <emphasis>optional</emphasis> + </term> + <listitem> + <para> + Maximum number of layers to create. + </para> + <para> + <emphasis>Default:</emphasis> <literal>24</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + + <section xml:id="dockerTools-buildLayeredImage-arg-contents"> + <title>Behavior of <varname>contents</varname> in the final image</title> + + <para> + Each path directly listed in <varname>contents</varname> will have a + symlink in the root of the image. + </para> + + <para> + For example: +<programlisting><![CDATA[ +pkgs.dockerTools.buildLayeredImage { + name = "hello"; + contents = [ pkgs.hello ]; +} +]]></programlisting> + will create symlinks for all the paths in the <literal>hello</literal> + package: +<screen><![CDATA[ +/bin/hello -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/bin/hello +/share/info/hello.info -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/info/hello.info +/share/locale/bg/LC_MESSAGES/hello.mo -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/locale/bg/LC_MESSAGES/hello.mo +]]></screen> + </para> + </section> + + <section xml:id="dockerTools-buildLayeredImage-arg-config"> + <title>Automatic inclusion of <varname>config</varname> references</title> + + <para> + The closure of <varname>config</varname> is automatically included in the + closure of the final image. + </para> + + <para> + This allows you to make very simple Docker images with very little code. + This container will start up and run <command>hello</command>: +<programlisting><![CDATA[ +pkgs.dockerTools.buildLayeredImage { + name = "hello"; + config.Cmd = [ "${pkgs.hello}/bin/hello" ]; +} +]]></programlisting> + </para> + </section> + + <section xml:id="dockerTools-buildLayeredImage-arg-maxLayers"> + <title>Adjusting <varname>maxLayers</varname></title> + + <para> + Increasing the <varname>maxLayers</varname> increases the number of layers + which have a chance to be shared between different images. + </para> + + <para> + Modern Docker installations support up to 128 layers, however older + versions support as few as 42. + </para> + + <para> + If the produced image will not be extended by other Docker builds, it is + safe to set <varname>maxLayers</varname> to <literal>128</literal>. + However it will be impossible to extend the image further. + </para> + + <para> + The first (<literal>maxLayers-2</literal>) most "popular" paths will have + their own individual layers, then layer #<literal>maxLayers-1</literal> + will contain all the remaining "unpopular" paths, and finally layer + #<literal>maxLayers</literal> will contain the Image configuration. + </para> + + <para> + Docker's Layers are not inherently ordered, they are content-addressable + and are not explicitly layered until they are composed in to an Image. + </para> + </section> + </section> + <section xml:id="ssec-pkgs-dockerTools-fetchFromRegistry"> <title>pullImage</title> diff --git a/doc/package-notes.xml b/doc/package-notes.xml index d8f55ef0a856..a4322a0234d3 100644 --- a/doc/package-notes.xml +++ b/doc/package-notes.xml @@ -413,11 +413,8 @@ packageOverrides = pkgs: { in your <filename>/etc/nixos/configuration.nix</filename>. You'll also need <programlisting>hardware.pulseaudio.support32Bit = true;</programlisting> if you are using PulseAudio - this will enable 32bit ALSA apps integration. - To use the Steam controller, you need to add -<programlisting>services.udev.extraRules = '' - SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", MODE="0666" - KERNEL=="uinput", MODE="0660", GROUP="users", OPTIONS+="static_node=uinput" - '';</programlisting> + To use the Steam controller or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro, you need to add +<programlisting>hardware.steam-hardware.enable = true;</programlisting> to your configuration. </para> </section> |