From dec44e57fe30f8edf74c3e9feecc2f805e39f28b Mon Sep 17 00:00:00 2001 From: mpl Date: Wed, 11 May 2016 16:46:51 +0200 Subject: [PATCH] misc/docker: add zoneinfo to GCE docker image Fixes #736 Change-Id: Ie58719716e1b4759ccec99a46ecc104eb86449ce --- misc/docker/dock.go | 23 +++++++++++++++++++---- misc/docker/server/Dockerfile | 2 ++ misc/docker/zoneinfo/Dockerfile | 6 ++++++ 3 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 misc/docker/zoneinfo/Dockerfile diff --git a/misc/docker/dock.go b/misc/docker/dock.go index 702e57201..21ced214a 100644 --- a/misc/docker/dock.go +++ b/misc/docker/dock.go @@ -78,10 +78,11 @@ var ( ) const ( - goDockerImage = "camlistore/go" - djpegDockerImage = "camlistore/djpeg" - serverImage = "camlistore/server" - goCmd = "/usr/local/go/bin/go" + goDockerImage = "camlistore/go" + djpegDockerImage = "camlistore/djpeg" + zoneinfoDockerImage = "camlistore/zoneinfo" + serverImage = "camlistore/server" + goCmd = "/usr/local/go/bin/go" // Path to where the Camlistore builder is mounted on the camlistore/go image. genCamliProgram = "/usr/local/bin/build-camlistore-server.go" genBinariesProgram = "/usr/local/bin/build-binaries.go" @@ -215,6 +216,18 @@ func genDjpeg(ctxDir string) { } } +func genZoneinfo(ctxDir string) { + cmd := exec.Command("docker", "run", + "--rm", + "--volume="+ctxDir+":/OUT", + zoneinfoDockerImage, "/bin/bash", "-c", "mkdir -p /OUT && cp -a /usr/share/zoneinfo /OUT/zoneinfo") + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + if err := cmd.Run(); err != nil { + log.Fatalf("Error generating zoneinfo in go container: %v", err) + } +} + func buildServer(ctxDir string) { copyFinalDockerfile(ctxDir) cmd := exec.Command("docker", "build", "-t", serverImage, ".") @@ -576,8 +589,10 @@ func main() { switch { case *doImage: buildDockerImage("djpeg-static", djpegDockerImage) + buildDockerImage("zoneinfo", zoneinfoDockerImage) genCamlistore(ctxDir) genDjpeg(ctxDir) + genZoneinfo(ctxDir) buildServer(ctxDir) case *doBinaries: genBinaries(ctxDir) diff --git a/misc/docker/server/Dockerfile b/misc/docker/server/Dockerfile index 02d7ebfec..8e0d8fff7 100644 --- a/misc/docker/server/Dockerfile +++ b/misc/docker/server/Dockerfile @@ -7,6 +7,8 @@ FROM scratch MAINTAINER Camlistore Contributors ADD djpeg /usr/bin/djpeg +# Because one of the default zoneinfo dirs on linux. See zoneDirs in time/zoneinfo_unix.go +ADD zoneinfo /usr/share/zoneinfo ADD camlistore.org /camlistore EXPOSE 80 443 diff --git a/misc/docker/zoneinfo/Dockerfile b/misc/docker/zoneinfo/Dockerfile new file mode 100644 index 000000000..56614d68d --- /dev/null +++ b/misc/docker/zoneinfo/Dockerfile @@ -0,0 +1,6 @@ +# Copyright 2016 The Camlistore Authors. + +FROM debian:stable +ENV DEBIAN_FRONTEND noninteractive +RUN apt-get update && apt-get -y upgrade +RUN apt-get -y install tzdata