nixos/docker: add daemonConfig option

Adds the virtualisation.docker.daemonConfig option that allows
changing Docker daemon settings as done in daemon.conf.
This commit is contained in:
Bob van der Linden 2021-10-13 19:47:37 +02:00
parent 9308070388
commit 142a1540d6
No known key found for this signature in database
GPG key ID: EEBE8E3EC4A31364
3 changed files with 27 additions and 1 deletions

View file

@ -109,6 +109,14 @@
<literal>writers.writePyPy2</literal> needs to be used.
</para>
</listitem>
<listitem>
<para>
If you previously used
<literal>/etc/docker/daemon.json</literal>, you need to
incorporate the changes into the new option
<literal>virtualisation.docker.daemonConfig</literal>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-22.05-notable-changes">

View file

@ -41,6 +41,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- The `writers.writePython2` and corresponding `writers.writePython2Bin` convenience functions to create executable Python 2 scripts in the store were removed in preparation of removal of the Python 2 interpreter.
Scripts have to be converted to Python 3 for use with `writers.writePython3` or `writers.writePyPy2` needs to be used.
- If you previously used `/etc/docker/daemon.json`, you need to incorporate the changes into the new option `virtualisation.docker.daemonConfig`.
## Other Notable Changes {#sec-release-22.05-notable-changes}
- The option [services.redis.servers](#opt-services.redis.servers) was added

View file

@ -8,7 +8,8 @@ let
cfg = config.virtualisation.docker;
proxy_env = config.networking.proxy.envVars;
daemonConfigJson = builtins.toJSON cfg.daemonConfig;
daemonConfigFile = pkgs.writeText "daemon.json" daemonConfigJson;
in
{
@ -52,6 +53,20 @@ in
'';
};
daemonConfig =
mkOption {
type = types.anything;
default = { };
example = {
ipv6 = true;
"fixed-cidr-v6" = "fd00::/80";
};
description = ''
Configuration for docker daemon. The attributes are serialized to JSON used as daemon.conf.
See https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file
'';
};
enableNvidia =
mkOption {
type = types.bool;
@ -173,6 +188,7 @@ in
${cfg.package}/bin/dockerd \
--group=docker \
--host=fd:// \
--config-file=${daemonConfigFile} \
--log-driver=${cfg.logDriver} \
${optionalString (cfg.storageDriver != null) "--storage-driver=${cfg.storageDriver}"} \
${optionalString cfg.liveRestore "--live-restore" } \