summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConnor Clark <connor@psyleft.com>2023-12-28 23:47:37 -0500
committerMathieu Othacehe <othacehe@gnu.org>2024-01-03 15:32:01 +0100
commit2f642b602398ab32b18faceecd074f49da92e95e (patch)
tree2b11f929d5e937f5bd5469699fa9b126536fa680
parentc880652fec3303c0d57c076f7187d95d9396983f (diff)
services: docker: Add config-file option.
* gnu/services/docker.scm (docker-configuration)[config-file] Add file-like field. * doc/guix.texi (Docker Service): Add information about config-file. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
-rw-r--r--doc/guix.texi3
-rw-r--r--gnu/services/docker.scm12
2 files changed, 14 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 3002cdfa13..924dbf23ba 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -39711,6 +39711,9 @@ This must be a list of strings where each string has the form
"TMPDIR=/tmp/dockerd")
@end lisp
+@item @code{config-file} (type: maybe-file-like)
+JSON configuration file pass to @command{dockerd}.
+
@end table
@end deftp
diff --git a/gnu/services/docker.scm b/gnu/services/docker.scm
index 72ef7d74db..4d32b96847 100644
--- a/gnu/services/docker.scm
+++ b/gnu/services/docker.scm
@@ -61,6 +61,8 @@
oci-container-service-type
oci-container-shepherd-service))
+(define-maybe file-like)
+
(define-configuration docker-configuration
(docker
(file-like docker)
@@ -87,6 +89,9 @@ loop-back communications.")
(environment-variables
(list '())
"Environment variables to set for dockerd")
+ (config-file
+ (maybe-file-like)
+ "JSON configuration file to pass to dockerd")
(no-serialization))
(define %docker-accounts
@@ -131,7 +136,8 @@ loop-back communications.")
(enable-iptables? (docker-configuration-enable-iptables? config))
(environment-variables (docker-configuration-environment-variables config))
(proxy (docker-configuration-proxy config))
- (debug? (docker-configuration-debug? config)))
+ (debug? (docker-configuration-debug? config))
+ (config-file (docker-configuration-config-file config)))
(shepherd-service
(documentation "Docker daemon.")
(provision '(dockerd))
@@ -144,6 +150,10 @@ loop-back communications.")
(start #~(make-forkexec-constructor
(list (string-append #$docker "/bin/dockerd")
"-p" "/var/run/docker.pid"
+ #$@(if (not (eq? config-file %unset-value))
+ (list #~(string-append
+ "--config-file=" #$config-file))
+ '())
#$@(if debug?
'("--debug" "--log-level=debug")
'())