From 5130b09c401d03318341f6f283f5f7666ac82183 Mon Sep 17 00:00:00 2001 From: "M. Mert Yildiran" Date: Mon, 17 Jan 2022 16:07:02 +0300 Subject: [PATCH] Update `Dockerfile` to have `ARCH` build argument --- Dockerfile | 14 +++++++------- agent/README.md | 3 ++- agent/kratos/build-push-featurebranch.sh | 3 ++- devops/build-agent-ci.sh | 3 ++- devops/build-push-featurebranch-debug.sh | 3 ++- devops/build-push-featurebranch.sh | 3 ++- 6 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Dockerfile b/Dockerfile index 71d412184..84e9238f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ -FROM node:14 AS site-build +ARG ARCH= +FROM ${ARCH}/node:14 AS site-build WORKDIR /app/ui-build @@ -9,12 +10,11 @@ COPY ui . RUN npm run build -FROM golang:1.17-alpine AS builder +FROM ${ARCH}/golang:1.17-alpine AS builder # Set necessary environment variables needed for our image. -#ENV CGO_ENABLED=1 GOOS=linux GOARCH=amd64 -ENV CGO_ENABLED=1 GOOS=linux +ENV CGO_ENABLED=1 GOOS=linux GOARCH=${ARCH} -RUN apk add --no-cache musl-dev libpcap-dev go gcc g++ make bash perl-utils openssl +RUN apk add binutils-gold libpcap-dev gcc g++ make bash perl-utils # Move to agent working directory (/agent-build). WORKDIR /app/agent-build @@ -23,7 +23,7 @@ COPY agent/go.mod agent/go.sum ./ COPY shared/go.mod shared/go.mod ../shared/ COPY tap/go.mod tap/go.mod ../tap/ COPY tap/api/go.* ../tap/api/ -RUN go mod download -x +RUN go mod download # cheap trick to make the build faster (as long as go.mod did not change) RUN go list -f '{{.Path}}@{{.Version}}' -m all | sed 1d | grep -e 'go-cache' | xargs go get @@ -45,7 +45,7 @@ RUN go build -ldflags="-s -w \ COPY devops/build_extensions.sh .. RUN cd .. && /bin/bash build_extensions.sh -FROM alpine:3.15 +FROM ${ARCH}/alpine:3.15 RUN apk add bash libpcap-dev diff --git a/agent/README.md b/agent/README.md index a7bdb11a0..7155f856c 100644 --- a/agent/README.md +++ b/agent/README.md @@ -5,11 +5,12 @@ Basic APIs: * /viewer - web ui ## Remote Debugging + ### Setup remote debugging 1. Run `go get github.com/go-delve/delve/cmd/dlv` 2. Create a "Go Remote" run/debug configuration in Intellij, set to localhost:2345 3. Build and push a debug image using - `docker build . -t gcr.io/up9-docker-hub/mizu/debug:latest -f debug.Dockerfile && docker push gcr.io/up9-docker-hub/mizu/debug:latest` + `docker build . -t gcr.io/up9-docker-hub/mizu/debug:latest --build-arg ARCH=amd64 -f debug.Dockerfile && docker push gcr.io/up9-docker-hub/mizu/debug:latest` ### Connecting 1. Start mizu using the cli with the debug diff --git a/agent/kratos/build-push-featurebranch.sh b/agent/kratos/build-push-featurebranch.sh index 069114c23..b3e272efc 100755 --- a/agent/kratos/build-push-featurebranch.sh +++ b/agent/kratos/build-push-featurebranch.sh @@ -8,6 +8,7 @@ GIT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2 | tr '[:upper:]' '[:lower:]') DOCKER_REPO=$REPOSITORY/$SERVER_NAME/$GIT_BRANCH SEM_VER=${SEM_VER=0.0.0} +ARCH=amd64 DOCKER_TAGGED_BUILDS=("$DOCKER_REPO:latest" "$DOCKER_REPO:$SEM_VER") @@ -19,7 +20,7 @@ fi echo "building ${DOCKER_TAGGED_BUILDS[@]}" DOCKER_TAGS_ARGS=$(echo ${DOCKER_TAGGED_BUILDS[@]/#/-t }) # "-t FIRST_TAG -t SECOND_TAG ..." -docker build $DOCKER_TAGS_ARGS --build-arg SEM_VER=${SEM_VER} --build-arg BUILD_TIMESTAMP=${BUILD_TIMESTAMP} --build-arg GIT_BRANCH=${GIT_BRANCH} --build-arg COMMIT_HASH=${COMMIT_HASH} . +docker build $DOCKER_TAGS_ARGS --build-arg ARCH=${ARCH} --build-arg SEM_VER=${SEM_VER} --build-arg BUILD_TIMESTAMP=${BUILD_TIMESTAMP} --build-arg GIT_BRANCH=${GIT_BRANCH} --build-arg COMMIT_HASH=${COMMIT_HASH} . for DOCKER_TAG in "${DOCKER_TAGGED_BUILDS[@]}" do diff --git a/devops/build-agent-ci.sh b/devops/build-agent-ci.sh index 430177a9c..39d6d9284 100755 --- a/devops/build-agent-ci.sh +++ b/devops/build-agent-ci.sh @@ -8,8 +8,9 @@ GIT_BRANCH=ci DOCKER_REPO=$REPOSITORY/$SERVER_NAME/$GIT_BRANCH SEM_VER=${SEM_VER=0.0.0} +ARCH=amd64 DOCKER_TAGGED_BUILD="$DOCKER_REPO:$SEM_VER" echo "building $DOCKER_TAGGED_BUILD" -docker build -t ${DOCKER_TAGGED_BUILD} --build-arg SEM_VER=${SEM_VER} --build-arg BUILD_TIMESTAMP=${BUILD_TIMESTAMP} --build-arg GIT_BRANCH=${GIT_BRANCH} --build-arg COMMIT_HASH=${COMMIT_HASH} . +docker build -t ${DOCKER_TAGGED_BUILD} --build-arg ARCH=${ARCH} --build-arg SEM_VER=${SEM_VER} --build-arg BUILD_TIMESTAMP=${BUILD_TIMESTAMP} --build-arg GIT_BRANCH=${GIT_BRANCH} --build-arg COMMIT_HASH=${COMMIT_HASH} . diff --git a/devops/build-push-featurebranch-debug.sh b/devops/build-push-featurebranch-debug.sh index 3e38385b3..833e8ff3f 100755 --- a/devops/build-push-featurebranch-debug.sh +++ b/devops/build-push-featurebranch-debug.sh @@ -8,6 +8,7 @@ GIT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2 | tr '[:upper:]' '[:lower:]') DOCKER_REPO=$REPOSITORY/$SERVER_NAME/$GIT_BRANCH SEM_VER=${SEM_VER=0.0.0} +ARCH=amd64 DOCKER_TAGGED_BUILDS=("$DOCKER_REPO:latest" "$DOCKER_REPO:$SEM_VER") @@ -19,7 +20,7 @@ fi echo "building ${DOCKER_TAGGED_BUILDS[@]}" DOCKER_TAGS_ARGS=$(echo ${DOCKER_TAGGED_BUILDS[@]/#/-t }) # "-t FIRST_TAG -t SECOND_TAG ..." -docker build -f debug.Dockerfile $DOCKER_TAGS_ARGS --build-arg SEM_VER=${SEM_VER} --build-arg BUILD_TIMESTAMP=${BUILD_TIMESTAMP} --build-arg GIT_BRANCH=${GIT_BRANCH} --build-arg COMMIT_HASH=${COMMIT_HASH} . +docker build -f debug.Dockerfile $DOCKER_TAGS_ARGS --build-arg ARCH=${ARCH} --build-arg SEM_VER=${SEM_VER} --build-arg BUILD_TIMESTAMP=${BUILD_TIMESTAMP} --build-arg GIT_BRANCH=${GIT_BRANCH} --build-arg COMMIT_HASH=${COMMIT_HASH} . for DOCKER_TAG in "${DOCKER_TAGGED_BUILDS[@]}" do diff --git a/devops/build-push-featurebranch.sh b/devops/build-push-featurebranch.sh index 4e040ac69..c129a44c4 100755 --- a/devops/build-push-featurebranch.sh +++ b/devops/build-push-featurebranch.sh @@ -8,6 +8,7 @@ GIT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2 | tr '[:upper:]' '[:lower:]') DOCKER_REPO=$REPOSITORY/$SERVER_NAME/$GIT_BRANCH SEM_VER=${SEM_VER=0.0.0} +ARCH=amd64 DOCKER_TAGGED_BUILDS=("$DOCKER_REPO:latest" "$DOCKER_REPO:$SEM_VER") @@ -19,7 +20,7 @@ fi echo "building ${DOCKER_TAGGED_BUILDS[@]}" DOCKER_TAGS_ARGS=$(echo ${DOCKER_TAGGED_BUILDS[@]/#/-t }) # "-t FIRST_TAG -t SECOND_TAG ..." -docker build $DOCKER_TAGS_ARGS --build-arg SEM_VER=${SEM_VER} --build-arg BUILD_TIMESTAMP=${BUILD_TIMESTAMP} --build-arg GIT_BRANCH=${GIT_BRANCH} --build-arg COMMIT_HASH=${COMMIT_HASH} . +docker build $DOCKER_TAGS_ARGS --build-arg SEM_VER=${SEM_VER} --build-arg ARCH=${ARCH} --build-arg BUILD_TIMESTAMP=${BUILD_TIMESTAMP} --build-arg GIT_BRANCH=${GIT_BRANCH} --build-arg COMMIT_HASH=${COMMIT_HASH} . for DOCKER_TAG in "${DOCKER_TAGGED_BUILDS[@]}" do