summaryrefslogtreecommitdiff
path: root/guix/docker.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-03-16 21:41:38 +0100
committerLudovic Courtès <ludo@gnu.org>2017-03-16 22:50:15 +0100
commit84dda5a9c0772b2507fab3209938ead9da2a3442 (patch)
tree8939d6b6ddcf4da4c96e39cf2fd6a0c0b19358e8 /guix/docker.scm
parentb1edfbc37f2f008188d91f594b046c5986485e47 (diff)
downloadgnu-guix-84dda5a9c0772b2507fab3209938ead9da2a3442.tar
gnu-guix-84dda5a9c0772b2507fab3209938ead9da2a3442.tar.gz
pack: Use a fixed timestamp in Docker images.
* guix/docker.scm (build-docker-image): Add #:creation-time parameter. Use SRFI-19 'date->string' instead of 'strftime' et al. * guix/scripts/pack.scm (docker-image)[build]: Pass #:creation-time to 'build-docker-image'.
Diffstat (limited to 'guix/docker.scm')
-rw-r--r--guix/docker.scm10
1 files changed, 7 insertions, 3 deletions
diff --git a/guix/docker.scm b/guix/docker.scm
index 56a0f7ec2b..5614ab2115 100644
--- a/guix/docker.scm
+++ b/guix/docker.scm
@@ -24,6 +24,7 @@
#:select (delete-file-recursively
with-directory-excursion))
#:use-module (guix build store-copy)
+ #:use-module (srfi srfi-19)
#:use-module (rnrs bytevectors)
#:use-module (ice-9 match)
#:export (build-docker-image))
@@ -83,15 +84,18 @@
(rootfs . ((type . "layers")
(diff_ids . (,(layer-diff-id layer)))))))
-(define* (build-docker-image image path #:key closure compressor)
+(define* (build-docker-image image path
+ #:key closure compressor
+ (creation-time (current-time time-utc)))
"Write to IMAGE a Docker image archive from the given store PATH. The image
contains the closure of PATH, as specified in CLOSURE (a file produced by
#:references-graphs). Use COMPRESSOR, a command such as '(\"gzip\" \"-9n\"),
-to compress IMAGE."
+to compress IMAGE. Use CREATION-TIME, a SRFI-19 time-utc object, as the
+creation time in metadata."
(let ((directory "/tmp/docker-image") ;temporary working directory
(closure (canonicalize-path closure))
(id (docker-id path))
- (time (strftime "%FT%TZ" (localtime (current-time))))
+ (time (date->string (time-utc->date creation-time) "~4"))
(arch (match (utsname:machine (uname))
("x86_64" "amd64")
("i686" "386")