From d1a1651702c0c56359099e7226ada10b65163c6c Mon Sep 17 00:00:00 2001 From: Yongli Chen Date: Fri, 20 Jul 2018 16:07:27 -0700 Subject: [PATCH] build image inside build container --- Dockerfile.build | 4 +++- Makefile | 11 ++++++++--- build/build-all-containerized.sh | 13 ++++++++++++- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index 8318322a3e..f0a6f53c23 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -1,6 +1,8 @@ FROM golang:1.10 -RUN apt-get update && apt-get install -y zip +RUN apt-get update \ + && apt-get install -y zip \ + && apt-get install -y sudo libltdl-dev RUN go get -d golang.org/x/sys/unix RUN go get -d github.com/Microsoft/hcsshim diff --git a/Makefile b/Makefile index adaf969757..c38ac46c73 100644 --- a/Makefile +++ b/Makefile @@ -99,7 +99,7 @@ CNM_PLUGIN_ROOTFS = azure-vnet-plugin-rootfs AZURE_NPM_IMAGE = containernetworking/azure-npm VERSION ?= $(shell git describe --tags --always --dirty) -AZURE_NPM_VERSION = VERSION +AZURE_NPM_VERSION = $(VERSION) ENSURE_OUTPUT_DIR_EXISTS := $(shell mkdir -p $(OUTPUT_DIR)) @@ -120,6 +120,8 @@ else all-binaries: azure-cnm-plugin azure-cni-plugin azure-cns endif +all-images: azure-npm-image + # Clean all build artifacts. .PHONY: clean clean: @@ -146,17 +148,20 @@ $(NPM_BUILD_DIR)/azure-npm$(EXE_EXT): $(NPMFILES) go build -v -o $(NPM_BUILD_DIR)/azure-npm$(EXE_EXT) -ldflags "-X main.version=$(VERSION) -s -w" $(NPM_DIR)/*.go # Build all binaries in a container. -.PHONY: all-binaries-containerized -all-binaries-containerized: +.PHONY: all-containerized +all-containerized: pwd && ls -l docker build -f Dockerfile.build -t $(BUILD_CONTAINER_IMAGE):$(VERSION) . docker run --name $(BUILD_CONTAINER_NAME) \ + -v /usr/bin/docker:/usr/bin/docker \ + -v /var/run/docker.sock:/var/run/docker.sock \ $(BUILD_CONTAINER_IMAGE):$(VERSION) \ bash -c '\ pwd && ls -l && \ export GOOS=$(GOOS) && \ export GOARCH=$(GOARCH) && \ make all-binaries && \ + make all-images && \ chown -R $(BUILD_USER):$(BUILD_USER) $(BUILD_DIR) \ ' docker cp $(BUILD_CONTAINER_NAME):$(BUILD_CONTAINER_REPO_PATH)/$(BUILD_DIR) $(OUTPUT_DIR) diff --git a/build/build-all-containerized.sh b/build/build-all-containerized.sh index 909aee6983..b24f2123b6 100755 --- a/build/build-all-containerized.sh +++ b/build/build-all-containerized.sh @@ -1,2 +1,13 @@ #!/usr/bin/env bash -GOOS=$1 GOARCH=$2 make all-binaries-containerized + +BUILD_CONTAINER_NAME=acn-builder +GOOS=$1 +GOARCH=$2 + +if [ ! "$(docker ps -q -f name=$BUILD_CONTAINER_NAME)" ]; then + if [ "$(docker ps -aq -f status=exited -f name=$BUILD_CONTAINER_NAME)" ]; then + docker rm -f $BUILD_CONTAINER_NAME + fi +fi + +make all-containerized \ No newline at end of file