···
The postStart phase of the systemd service. You may need to
override this if you are passing in flags to docker which
72
-
don't cause the socket file to be created.
72
+
don't cause the socket file to be created. This option is ignored
73
+
if socket activation is used.
···
config = mkIf cfg.enable (mkMerge [
{ environment.systemPackages = [ pkgs.docker ];
users.extraGroups.docker.gid = config.ids.gids.docker;
85
-
(mkIf cfg.socketActivation {
systemd.services.docker = {
description = "Docker Application Container Engine";
89
-
after = [ "network.target" "docker.socket" ];
90
-
requires = [ "docker.socket" ];
87
+
wantedBy = optional (!cfg.socketActivation) "multi-user.target";
88
+
after = [ "network.target" ] ++ (optional cfg.socketActivation "docker.socket") ;
89
+
requires = optional cfg.socketActivation "docker.socket";
92
-
ExecStart = "${pkgs.docker}/bin/docker daemon --host=fd:// --group=docker --storage-driver=${cfg.storageDriver} ${cfg.extraOptions}";
91
+
ExecStart = "${pkgs.docker}/bin/docker daemon --group=docker --storage-driver=${cfg.storageDriver} ${optionalString cfg.socketActivation "--host=fd://"} ${cfg.extraOptions}";
# I'm not sure if that limits aren't too high, but it's what
# goes in config bundled with docker itself
98
+
path = [ pkgs.kmod ] ++ (optional (cfg.storageDriver == "zfs") pkgs.zfs);
99
+
environment.MODULE_DIR = "/run/current-system/kernel-modules/lib/modules";
101
+
postStart = if cfg.socketActivation then "" else cfg.postStart;
103
+
# Presumably some containers are running we don't want to interrupt
104
+
restartIfChanged = false;
107
+
(mkIf cfg.socketActivation {
systemd.sockets.docker = {
description = "Docker Socket for the API";
wantedBy = [ "sockets.target" ];
···
111
-
(mkIf (!cfg.socketActivation) {
113
-
systemd.services.docker = {
114
-
description = "Docker Application Container Engine";
115
-
wantedBy = [ "multi-user.target" ];
116
-
after = [ "network.target" ];
118
-
ExecStart = "${pkgs.docker}/bin/docker daemon --group=docker --storage-driver=${cfg.storageDriver} ${cfg.extraOptions}";
119
-
# I'm not sure if that limits aren't too high, but it's what
120
-
# goes in config bundled with docker itself
121
-
LimitNOFILE = 1048576;
122
-
LimitNPROC = 1048576;
125
-
path = [ pkgs.kmod ] ++ (optional (cfg.storageDriver == "zfs") pkgs.zfs);
126
-
environment.MODULE_DIR = "/run/current-system/kernel-modules/lib/modules";
128
-
postStart = cfg.postStart;
130
-
# Presumably some containers are running we don't want to interrupt
131
-
restartIfChanged = false;