From a5583074e0799b43ecebaa3073f7c7d1b6863405 Mon Sep 17 00:00:00 2001 From: Alistair Hey Date: Sat, 14 Nov 2020 06:25:22 +0000 Subject: [PATCH] Convert Gateway to Github Actions Signed-off-by: Alistair Hey --- .github/workflows/build.yml | 127 +++++++++++++++++++++++++++++++ .travis.yml | 39 ---------- Makefile | 21 ++--- auth/basic-auth/Dockerfile | 18 +++-- auth/basic-auth/Dockerfile.arm64 | 38 --------- build.sh | 4 +- ci/registryLogin.sh | 15 ---- gateway/Dockerfile | 65 ++++++++-------- gateway/Dockerfile.arm64 | 71 ----------------- gateway/Dockerfile.armhf | 68 ----------------- gateway/build.sh | 50 ------------ 11 files changed, 180 insertions(+), 336 deletions(-) create mode 100644 .github/workflows/build.yml delete mode 100644 .travis.yml delete mode 100644 auth/basic-auth/Dockerfile.arm64 delete mode 100755 ci/registryLogin.sh delete mode 100644 gateway/Dockerfile.arm64 delete mode 100644 gateway/Dockerfile.armhf delete mode 100755 gateway/build.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..64e3e29b --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,127 @@ +name: build + +on: + push: + branches: + - '*' + pull_request: + branches: + - '*' +# Auth +# Watchdog containers +# Watchdog bins + shas + +jobs: + + # Run the CI tests + build-test: + strategy: + matrix: + go-version: [1.13.x] + os: [ubuntu-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@master + with: + fetch-depth: 1 + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go-version }} + - name: Run CI + run: make build test-ci + + build-gateway: + runs-on: ubuntu-latest + strategy: + matrix: + go-version: [1.13.x] + steps: + - uses: actions/checkout@master + with: + fetch-depth: 1 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Get TAG + id: get_tag + run: echo ::set-output name=TAG::latest-dev + - name: Get Repo Owner + id: get_repo_owner + run: echo ::set-output name=repo_owner::$(echo ${{ github.event.repository.owner.login }} | tr '[:upper:]' '[:lower:]') + - name: Build Gateway + uses: docker/build-push-action@v2 + with: + context: . + file: ./gateway/Dockerfile + outputs: "type=image,push=false" + platforms: linux/amd64,linux/arm/v7,linux/arm64 + tags: | + ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/gateway:${{ steps.get_tag.outputs.TAG }} + ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/gateway:${{ github.sha }} + ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/gateway:latest + + build-watchdog: + runs-on: ubuntu-latest + strategy: + matrix: + go-version: [1.13.x] + steps: + - uses: actions/checkout@master + with: + fetch-depth: 1 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Get TAG + id: get_tag + run: echo ::set-output name=TAG::latest-dev + - name: Get Repo Owner + id: get_repo_owner + run: echo ::set-output name=repo_owner::$(echo ${{ github.event.repository.owner.login }} | tr '[:upper:]' '[:lower:]') + - name: Build Watchdog + uses: docker/build-push-action@v2 + with: + context: . + file: ./gateway/Dockerfile + outputs: "type=image,push=false" + platforms: linux/amd64,linux/arm/v7,linux/arm64 + tags: | + ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/gateway:${{ steps.get_tag.outputs.TAG }} + ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/gateway:${{ github.sha }} + ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/gateway:latest + build-auth-containers: + runs-on: ubuntu-latest + strategy: + matrix: + go-version: [1.13.x] + svc: [ + basic-auth + ] + steps: + - uses: actions/checkout@master + with: + fetch-depth: 1 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Get TAG + id: get_tag + run: echo ::set-output name=TAG::latest-dev + - name: Get Repo Owner + id: get_repo_owner + run: echo ::set-output name=repo_owner::$(echo ${{ github.event.repository.owner.login }} | tr '[:upper:]' '[:lower:]') + - name: Build ${{ matrix.svc }} + uses: docker/build-push-action@v2 + with: + context: ./auth/${{ matrix.svc }} + file: ./auth/${{ matrix.svc }}/Dockerfile + outputs: "type=image,push=false" + platforms: linux/amd64,linux/arm/v7,linux/arm64 + tags: | + ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/${{ matrix.svc }}:${{ steps.get_tag.outputs.TAG }} + ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/${{ matrix.svc }}:${{ github.sha }} + ghcr.io/${{ steps.get_repo_owner.outputs.repo_owner }}/${{ matrix.svc }}:latest diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f7cd24f3..00000000 --- a/.travis.yml +++ /dev/null @@ -1,39 +0,0 @@ -sudo: required - -language: go -go: - - "1.13.x" - -services: - - docker - -addons: - apt: - packages: - - docker-ce - -before_install: - -script: - - ./build.sh - - ./contrib/ci.sh - -after_success: - - if [ -z $DOCKER_NS ] ; then - export DOCKER_NS=openfaas; - fi - - - if [ ! -z "$TRAVIS_TAG" ] ; then - export DOCKER_CLI_EXPERIMENTAL=enabled - - export REGISTRY=docker.io; - ./ci/registryLogin.sh $REGISTRY; - ./ci/tagAndPush.sh "$REGISTRY" "$DOCKER_NS/gateway"; - ./ci/tagAndPush.sh "$REGISTRY" "$DOCKER_NS/basic-auth-plugin"; - - export REGISTRY=quay.io; - ./ci/registryLogin.sh $REGISTRY; - ./ci/tagAndPush.sh "$REGISTRY" "$DOCKER_NS/gateway"; - ./ci/tagAndPush.sh "$REGISTRY" "$DOCKER_NS/basic-auth-plugin"; - - fi diff --git a/Makefile b/Makefile index 7f043649..97f71e6f 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ TAG?=latest +NS?=openfaas .PHONY: build build: @@ -6,24 +7,12 @@ build: .PHONY: build-gateway build-gateway: - (cd gateway; ./build.sh latest-dev) + (cd gateway; docker buildx build --platform linux/amd64 -t $NS/gateway:latest-dev .) .PHONY: test-ci test-ci: ./contrib/ci.sh -.PHONY: ci-armhf-build -ci-armhf-build: - (cd gateway; ./build.sh $(TAG) ; cd ../auth/basic-auth ; ./build.sh $(TAG)) - -.PHONY: ci-armhf-push -ci-armhf-push: - (cd gateway; ./push.sh $(TAG) ; cd ../auth/basic-auth ; ./push.sh $(TAG)) - -.PHONY: ci-arm64-build -ci-arm64-build: - (cd gateway; ./build.sh $(TAG) ; cd ../auth/basic-auth ; ./build.sh $(TAG)) - -.PHONY: ci-arm64-push -ci-arm64-push: - (cd gateway; ./push.sh $(TAG) ; cd ../auth/basic-auth ; ./push.sh $(TAG)) +.PHONY: binaries +binaries: + echo TODO \ No newline at end of file diff --git a/auth/basic-auth/Dockerfile b/auth/basic-auth/Dockerfile index 34e580e6..763a6bf1 100644 --- a/auth/basic-auth/Dockerfile +++ b/auth/basic-auth/Dockerfile @@ -1,11 +1,15 @@ -FROM teamserverless/license-check:0.3.6 as license-check +FROM --platform=${BUILDPLATFORM:-linux/amd64} teamserverless/license-check:0.3.6 as license-check -FROM golang:1.13-alpine3.11 as build +FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.13 as build ENV GO111MODULE=off ENV CGO_ENABLED=0 -RUN apk add --no-cache curl ca-certificates +ARG TARGETPLATFORM +ARG BUILDPLATFORM +ARG TARGETOS +ARG TARGETARCH + COPY --from=license-check /license-check /usr/bin/ WORKDIR /go/src/handler @@ -13,13 +17,13 @@ COPY . . # Run a gofmt and exclude all vendored code. -RUN license-check -path ./ --verbose=false "OpenFaaS Authors" "OpenFaaS Author(s)" \ - && test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \ - && CGO_ENABLED=0 GOOS=linux \ +RUN license-check -path ./ --verbose=false "OpenFaaS Authors" "OpenFaaS Author(s)" +RUN CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH } test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" +RUN CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH } \ go build --ldflags "-s -w" -a -installsuffix cgo -o handler . && \ go test $(go list ./... | grep -v /vendor/) -cover -FROM alpine:3.11 as ship +FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine:3.12 as ship # Add non-root user RUN addgroup -S app && adduser -S -g app app \ && mkdir -p /home/app \ diff --git a/auth/basic-auth/Dockerfile.arm64 b/auth/basic-auth/Dockerfile.arm64 deleted file mode 100644 index b30b2446..00000000 --- a/auth/basic-auth/Dockerfile.arm64 +++ /dev/null @@ -1,38 +0,0 @@ -FROM teamserverless/license-check:0.3.6 as license-check - -FROM golang:1.13-alpine3.11 as build - -ENV GO111MODULE=off -ENV CGO_ENABLED=0 - -RUN apk add --no-cache curl ca-certificates gcc musl-dev -COPY --from=license-check /license-check /usr/bin/ - -WORKDIR /go/src/handler -COPY . . - -# Run a gofmt and exclude all vendored code. - -RUN license-check -path ./ --verbose=false "OpenFaaS Authors" "OpenFaaS Author(s)" \ - && test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \ - && go test $(go list ./... | grep -v /vendor/) -cover && \ - CGO_ENABLED=0 GOOS=linux go build --ldflags "-s -w" -a -installsuffix cgo -o handler . - -FROM alpine:3.11 -# Add non-root user -RUN addgroup -S app && adduser -S -g app app \ - && mkdir -p /home/app \ - && chown app /home/app - -WORKDIR /home/app - -COPY --from=build /go/src/handler/handler . - -RUN chown -R app /home/app - -USER app - -WORKDIR /home/app - -CMD ["./handler"] - diff --git a/build.sh b/build.sh index 89ab1b94..1eb2abba 100755 --- a/build.sh +++ b/build.sh @@ -1,8 +1,8 @@ #!/bin/bash set -e -if [ ! -s "$TRAVIS_TAG" ] ; then - echo "This build will be published under the tag: ${TRAVIS_TAG}" +if [ ! -s "$TAG" ] ; then + echo "This build will be published under the tag: ${TAG}" fi (cd gateway && ./build.sh) diff --git a/ci/registryLogin.sh b/ci/registryLogin.sh deleted file mode 100755 index b4dce660..00000000 --- a/ci/registryLogin.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -set -e - -IMAGE_REGISTRY=$1 - -if [ "$IMAGE_REGISTRY" = "quay.io" ] ; then - USERNAME=$QUAY_USERNAME - PASSWORD=$QUAY_PASSWORD -elif [ "$IMAGE_REGISTRY" = "docker.io" ] ; then - USERNAME=$DOCKER_USERNAME - PASSWORD=$DOCKER_PASSWORD -fi - -echo "Attempting to log in to $IMAGE_REGISTRY" -echo $PASSWORD | docker login -u=$USERNAME --password-stdin $IMAGE_REGISTRY; diff --git a/gateway/Dockerfile b/gateway/Dockerfile index c902d8b5..6863cb29 100644 --- a/gateway/Dockerfile +++ b/gateway/Dockerfile @@ -1,50 +1,55 @@ -FROM teamserverless/license-check:0.3.6 as license-check +FROM --platform=${BUILDPLATFORM:-linux/amd64} teamserverless/license-check:0.3.6 as license-check -FROM golang:1.13 as build +FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.13 as build ENV GO111MODULE=off ENV CGO_ENABLED=0 +ARG TARGETPLATFORM +ARG BUILDPLATFORM +ARG TARGETOS +ARG TARGETARCH + ARG GIT_COMMIT_SHA ARG GIT_COMMIT_MESSAGE ARG VERSION='dev' -ARG ARCH="x86_64" -ARG GOOS=linux -ARG GOARM COPY --from=license-check /license-check /usr/bin/ WORKDIR /go/src/github.com/openfaas/faas/gateway -COPY vendor vendor +COPY gateway/vendor vendor -COPY handlers handlers -COPY metrics metrics -COPY requests requests -COPY tests tests +COPY gateway/handlers handlers +COPY gateway/metrics metrics +COPY gateway/requests requests +COPY gateway/tests tests + +COPY gateway/types types +COPY gateway/queue queue +COPY gateway/plugin plugin +COPY gateway/version version +COPY gateway/scaling scaling +COPY gateway/pkg pkg +COPY gateway/main.go . +COPY .git . +RUN license-check -path ./ --verbose=false "Alex Ellis" "OpenFaaS Authors" "OpenFaaS Author(s)" -COPY types types -COPY queue queue -COPY plugin plugin -COPY version version -COPY scaling scaling -COPY pkg pkg -COPY main.go . # Run a gofmt and exclude all vendored code. -RUN license-check -path ./ --verbose=false "Alex Ellis" "OpenFaaS Authors" "OpenFaaS Author(s)" \ - && test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \ - && CGO_ENABLED=${CGO_ENABLED} go test $(go list ./... | grep -v integration | grep -v /vendor/ | grep -v /template/) -cover \ - && GOARM=${GOARM} CGO_ENABLED=${CGO_ENABLED} GOOS=linux go build --ldflags "-s -w \ - -X github.com/openfaas/faas/gateway/version.GitCommitSHA=${GIT_COMMIT_SHA}\ - -X \"github.com/openfaas/faas/gateway/version.GitCommitMessage=${GIT_COMMIT_MESSAGE}\"\ - -X \"github.com/openfaas/faas/gateway/version.Version=${VERSION}\" \ - -X github.com/openfaas/faas/gateway/types.Arch=${ARCH}"\ +RUN test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" +RUN CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH} go test $(go list ./... | grep -v integration | grep -v /vendor/ | grep -v /template/) -cover +RUN GIT_COMMIT_MESSAGE=$(git log -1 --pretty=%B 2>&1 | head -n 1) \ + GIT_COMMIT_SHA=$(git rev-list -1 HEAD) \ + VERSION=$(git describe --all --exact-match `git rev-parse HEAD` | grep tags | sed 's/tags\///' || echo dev) \ + CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build --ldflags "-s -w \ + -X github.com/openfaas/faas/gateway/version.GitCommitSHA=${GIT_COMMIT_SHA} \ + -X github.com/openfaas/faas/gateway/version.GitCommitMessage=${GIT_COMMIT_MESSAGE} \ + -X github.com/openfaas/faas/gateway/version.Version=${VERSION} \ + -X github.com/openfaas/faas/gateway/types.Arch=${TARGETARCH}" \ -a -installsuffix cgo -o gateway . -FROM alpine:3.11 - -ARG ARCH="x86_64" +FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine:3.12 as ship LABEL org.label-schema.license="MIT" \ org.label-schema.vcs-url="https://github.com/openfaas/faas" \ @@ -65,8 +70,8 @@ ENV http_proxy "" ENV https_proxy "" COPY --from=build /go/src/github.com/openfaas/faas/gateway/gateway . -COPY assets assets -RUN sed -ie s/x86_64/${ARCH}/g assets/script/funcstore.js && \ +COPY gateway/assets assets +RUN sed -ie s/x86_64/${GOARCH}/g assets/script/funcstore.js && \ rm assets/script/funcstore.jse RUN chown -R app:app ./ diff --git a/gateway/Dockerfile.arm64 b/gateway/Dockerfile.arm64 deleted file mode 100644 index d94c3656..00000000 --- a/gateway/Dockerfile.arm64 +++ /dev/null @@ -1,71 +0,0 @@ -FROM teamserverless/license-check:0.3.6 as license-check - -FROM golang:1.13 as build - -ENV GO111MODULE=off -ENV CGO_ENABLED=0 - -ARG GIT_COMMIT_SHA -ARG GIT_COMMIT_MESSAGE -ARG VERSION='dev' - -COPY --from=license-check /license-check /usr/bin/ - -WORKDIR /go/src/github.com/openfaas/faas/gateway - -COPY vendor vendor - -COPY handlers handlers -COPY metrics metrics -COPY requests requests -COPY tests tests - -COPY types types -COPY queue queue -COPY plugin plugin -COPY version version -COPY scaling scaling -COPY pkg pkg -COPY main.go . - -# Run a gofmt and exclude all vendored code. -RUN license-check -path ./ --verbose=false "Alex Ellis" "OpenFaaS Project" "OpenFaaS Authors" "OpenFaaS Author(s)" \ - && test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \ - && go test $(go list ./... | grep -v integration | grep -v /vendor/ | grep -v /template/) -cover \ - && CGO_ENABLED=0 GOOS=linux go build --ldflags "-s -w \ - -X github.com/openfaas/faas/gateway/version.GitCommitSHA=${GIT_COMMIT_SHA}\ - -X \"github.com/openfaas/faas/gateway/version.GitCommitMessage=${GIT_COMMIT_MESSAGE}\"\ - -X github.com/openfaas/faas/gateway/version.Version=${VERSION}" \ - -a -installsuffix cgo -o gateway . - -FROM alpine:3.11 - -LABEL org.label-schema.license="MIT" \ - org.label-schema.vcs-url="https://github.com/openfaas/faas" \ - org.label-schema.vcs-type="Git" \ - org.label-schema.name="openfaas/faas" \ - org.label-schema.vendor="openfaas" \ - org.label-schema.docker.schema-version="1.0" - -RUN addgroup -S app \ - && adduser -S -g app app \ - && apk add --no-cache ca-certificates - -WORKDIR /home/app - -EXPOSE 8080 -EXPOSE 8082 -ENV http_proxy "" -ENV https_proxy "" - - -COPY --from=build /go/src/github.com/openfaas/faas/gateway/gateway . -COPY assets assets - -RUN chown -R app:app ./ - -USER app - -RUN sed -ie s/x86_64/arm64/g /home/app/assets/script/funcstore.js - -CMD ["./gateway"] diff --git a/gateway/Dockerfile.armhf b/gateway/Dockerfile.armhf deleted file mode 100644 index f8b94655..00000000 --- a/gateway/Dockerfile.armhf +++ /dev/null @@ -1,68 +0,0 @@ -FROM teamserverless/license-check:0.3.6 as license-check - -FROM golang:1.13 as build - -ENV GO111MODULE=off -ENV CGO_ENABLED=0 - -ARG GIT_COMMIT_SHA -ARG GIT_COMMIT_MESSAGE -ARG VERSION='dev' - -COPY --from=license-check /license-check /usr/bin/ - -WORKDIR /go/src/github.com/openfaas/faas/gateway - -COPY vendor vendor - -COPY handlers handlers -COPY metrics metrics -COPY requests requests -COPY tests tests - -COPY types types -COPY queue queue -COPY plugin plugin -COPY version version -COPY scaling scaling -COPY pkg pkg -COPY main.go . - -# Run a gofmt and exclude all vendored code. -RUN license-check -path ./ --verbose=false "Alex Ellis" "OpenFaaS Project" "OpenFaaS Authors" "OpenFaaS Author(s)" \ - && test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \ - && go test $(go list ./... | grep -v integration | grep -v /vendor/ | grep -v /template/) -cover \ - && GOARM=7 CGO_ENABLED=0 GOOS=linux go build --ldflags "-s -w \ - -X github.com/openfaas/faas/gateway/version.GitCommitSHA=${GIT_COMMIT_SHA}\ - -X \"github.com/openfaas/faas/gateway/version.GitCommitMessage=${GIT_COMMIT_MESSAGE}\"\ - -X github.com/openfaas/faas/gateway/version.Version=${VERSION}" \ - -a -installsuffix cgo -o gateway . - -FROM alpine:3.11 - -LABEL org.label-schema.license="MIT" \ - org.label-schema.vcs-url="https://github.com/openfaas/faas" \ - org.label-schema.vcs-type="Git" \ - org.label-schema.name="openfaas/faas" \ - org.label-schema.vendor="openfaas" \ - org.label-schema.docker.schema-version="1.0" - -RUN addgroup -S app \ - && adduser -S -g app app \ - && apk add --no-cache ca-certificates - -WORKDIR /home/app - -EXPOSE 8080 -EXPOSE 8082 -ENV http_proxy "" -ENV https_proxy "" - -COPY --from=build /go/src/github.com/openfaas/faas/gateway/gateway . - -COPY assets assets -RUN sed -ie s/x86_64/armhf/g /home/app/assets/script/funcstore.js -RUN chown -R app:app ./ -USER app - -CMD ["./gateway"] diff --git a/gateway/build.sh b/gateway/build.sh deleted file mode 100755 index 76e5dbf5..00000000 --- a/gateway/build.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -set -e - -export dockerfile="Dockerfile" -export arch=$(uname -m) - -export eTAG="latest-dev" -export GOARM="" - -if [ "$arch" = "armv7l" ] ; then - dockerfile="Dockerfile" - eTAG="latest-armhf-dev" - arch="armhf" - GOARM="7" -elif [ "$arch" = "aarch64" ] ; then - arch="arm64" - dockerfile="Dockerfile" - eTAG="latest-arm64-dev" -fi - -# $arch has been mutated by this point, so check for the updated values -echo "$1" -if [ "$1" ] ; then - eTAG=$1 - if [ "$arch" = "armhf" ] ; then - eTAG="$1-armhf" - elif [ "$arch" = "arm64" ] ; then - eTAG="$1-arm64" - fi -fi - -if [ "$2" ] ; then - NS=$2 -else - NS=openfaas -fi - - -echo "Building $NS/gateway:$eTAG with $dockerfile for $arch" - -GIT_COMMIT_MESSAGE=$(git log -1 --pretty=%B 2>&1 | head -n 1) -GIT_COMMIT_SHA=$(git rev-list -1 HEAD) -VERSION=$(git describe --all --exact-match `git rev-parse HEAD` | grep tags | sed 's/tags\///' || echo dev) - -docker build --build-arg https_proxy=$https_proxy --build-arg http_proxy=$http_proxy \ - --build-arg GIT_COMMIT_MESSAGE="${GIT_COMMIT_MESSAGE}" --build-arg GIT_COMMIT_SHA="${GIT_COMMIT_SHA}" \ - --build-arg VERSION="${VERSION:-dev}" \ - --build-arg GOARM="${GOARM}" \ - --build-arg ARCH="${arch}" \ - -t $NS/gateway:$eTAG . -f $dockerfile