From 9522a33ebe3600d9ff6903208409a659b840f7b8 Mon Sep 17 00:00:00 2001 From: Ashlie Martinez Date: Tue, 3 May 2022 15:39:53 -0700 Subject: [PATCH] Script file to build a basic dev container image. * New container will have deps known at the time the container was made * If deps change a lot, rebuild/save current container image as deps are outside the directory mount * Deps are not explicitly listed in the container Dockerfile or script as go mod is expected to manage them for us * Automatically creates a container user with UID/GID of the current user to avoid file ownership issues --- docker/build.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100755 docker/build.sh diff --git a/docker/build.sh b/docker/build.sh new file mode 100755 index 000000000..8a3fdbb62 --- /dev/null +++ b/docker/build.sh @@ -0,0 +1,27 @@ +#! /bin/bash + +# Builds a docker image that contains the deps for the current version of the +# code. Image expects dev directory to be mounted in the container at runtime. + +source paths.sh + +BASE_TAG="alcionai/base-dev" + +buildImage() { + docker build \ + -f Dockerfile \ + -t "$BASE_TAG" \ + --build-arg uid=$(id -u) \ + --build-arg gid=$(id -g) \ + . + docker run \ + -v "$REPO_CODE":"$GOLANG_REPO_PATH" \ + --name build-tmp \ + -w "$GOLANG_REPO_PATH" \ + -it \ + "$BASE_TAG" go get + docker commit build-tmp "$DEV_TAG" + docker rm build-tmp +} + +buildImage