gitlab-runner service: only depend on docker if enabled

Changed files
+5 -3
nixos
modules
services
continuous-integration
+5 -3
nixos/modules/services/continuous-integration/gitlab-runner.nix
···
let
cfg = config.services.gitlab-runner;
configFile = pkgs.writeText "config.toml" cfg.configText;
in
{
options.services.gitlab-runner = {
···
config = mkIf cfg.enable {
systemd.services.gitlab-runner = {
description = "Gitlab Runner";
-
after = [ "network.target" "docker.service" ];
-
requires = [ "docker.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = ''${cfg.package.bin}/bin/gitlab-runner run \
···
users.extraUsers.gitlab-runner = {
group = "gitlab-runner";
-
extraGroups = [ "docker" ];
uid = config.ids.uids.gitlab-runner;
home = cfg.workDir;
createHome = true;
···
let
cfg = config.services.gitlab-runner;
configFile = pkgs.writeText "config.toml" cfg.configText;
+
hasDocker = config.virtualisation.docker.enable;
in
{
options.services.gitlab-runner = {
···
config = mkIf cfg.enable {
systemd.services.gitlab-runner = {
description = "Gitlab Runner";
+
after = [ "network.target" ]
+
++ optional hasDocker "docker.service";
+
requires = optional hasDocker "docker.service";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = ''${cfg.package.bin}/bin/gitlab-runner run \
···
users.extraUsers.gitlab-runner = {
group = "gitlab-runner";
+
extraGroups = optional hasDocker "docker";
uid = config.ids.uids.gitlab-runner;
home = cfg.workDir;
createHome = true;