aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2017-03-08 10:44:02 +0100
committerBjörn Gustavsson <[email protected]>2017-03-08 14:29:51 +0100
commit247412294cbd04ecbd9680646b16d08f53255caa (patch)
tree38e6f7f86542f8da599b1f3d236c1f0a8550a1a9
parentc1dab09a681edac9684afea4b6e2522475cea2f0 (diff)
downloadotp-247412294cbd04ecbd9680646b16d08f53255caa.tar.gz
otp-247412294cbd04ecbd9680646b16d08f53255caa.tar.bz2
otp-247412294cbd04ecbd9680646b16d08f53255caa.zip
build-docker-otp: Avoid copying the git repository to docker daemon
Since docker is run from the top-level of the otp repository, the entire repository will be the context for the docker daemon. In my private repository, more than 800Mb had to be copied before the build could be started. Let the ./scripts directory be the context for docker instead. That way, only the otp.tar.gz file needs to be copied. While we are it, also use the ADD command in the Dockerfiles to pack up the tar file and avoid copying the tar file itself to the Docker image.
-rw-r--r--scripts/Dockerfile.326
-rw-r--r--scripts/Dockerfile.646
-rwxr-xr-xscripts/build-docker-otp5
3 files changed, 5 insertions, 12 deletions
diff --git a/scripts/Dockerfile.32 b/scripts/Dockerfile.32
index 01025340f7..23a360a58e 100644
--- a/scripts/Dockerfile.32
+++ b/scripts/Dockerfile.32
@@ -1,10 +1,6 @@
FROM erlang/ubuntu-build:32bit
-COPY ./otp.tar.gz /buildroot/
-
-WORKDIR /buildroot/
-
-RUN tar xzf otp.tar.gz
+ADD ./otp.tar.gz /buildroot/
WORKDIR /buildroot/otp/
diff --git a/scripts/Dockerfile.64 b/scripts/Dockerfile.64
index c08184d10a..199067e5fe 100644
--- a/scripts/Dockerfile.64
+++ b/scripts/Dockerfile.64
@@ -1,10 +1,6 @@
FROM erlang/ubuntu-build:64bit
-COPY ./otp.tar.gz /buildroot/
-
-WORKDIR /buildroot/
-
-RUN tar xzf otp.tar.gz
+ADD ./otp.tar.gz /buildroot/
WORKDIR /buildroot/otp/
diff --git a/scripts/build-docker-otp b/scripts/build-docker-otp
index 928b84a32d..01bb0b628e 100755
--- a/scripts/build-docker-otp
+++ b/scripts/build-docker-otp
@@ -8,7 +8,8 @@ fi
ARCH="$1"
shift
-git archive --format=tar.gz --prefix=otp/ HEAD >otp.tar.gz
+git archive --format=tar.gz --prefix=otp/ HEAD >scripts/otp.tar.gz
-docker build -t otp --file scripts/Dockerfile.$ARCH .
+docker build -t otp --file scripts/Dockerfile.$ARCH scripts
+rm scripts/otp.tar.gz
docker run --volume="$PWD/logs:/buildroot/otp/logs" -i --rm otp ${1+"$@"}