···
The postStart phase of the systemd service. You may need to
override this if you are passing in flags to docker which
-
don't cause the socket file to be created.
···
config = mkIf cfg.enable (mkMerge [
{ environment.systemPackages = [ pkgs.docker ];
users.extraGroups.docker.gid = config.ids.gids.docker;
-
(mkIf cfg.socketActivation {
systemd.services.docker = {
description = "Docker Application Container Engine";
-
after = [ "network.target" "docker.socket" ];
-
requires = [ "docker.socket" ];
-
ExecStart = "${pkgs.docker}/bin/docker daemon --host=fd:// --group=docker --storage-driver=${cfg.storageDriver} ${cfg.extraOptions}";
# I'm not sure if that limits aren't too high, but it's what
# goes in config bundled with docker itself
systemd.sockets.docker = {
description = "Docker Socket for the API";
wantedBy = [ "sockets.target" ];
···
-
(mkIf (!cfg.socketActivation) {
-
systemd.services.docker = {
-
description = "Docker Application Container Engine";
-
wantedBy = [ "multi-user.target" ];
-
after = [ "network.target" ];
-
ExecStart = "${pkgs.docker}/bin/docker daemon --group=docker --storage-driver=${cfg.storageDriver} ${cfg.extraOptions}";
-
# I'm not sure if that limits aren't too high, but it's what
-
# goes in config bundled with docker itself
-
path = [ pkgs.kmod ] ++ (optional (cfg.storageDriver == "zfs") pkgs.zfs);
-
environment.MODULE_DIR = "/run/current-system/kernel-modules/lib/modules";
-
postStart = cfg.postStart;
-
# Presumably some containers are running we don't want to interrupt
-
restartIfChanged = false;