From ccd4bf030929941d583e445a6caebcebd6993fc2 Mon Sep 17 00:00:00 2001 From: Luke Wahlmeier Date: Thu, 24 Oct 2019 22:17:04 -0600 Subject: [PATCH 1/3] fixed/updated build scripts --- .travis.yml | 9 ++++----- Dockerfile | 16 +--------------- build.sh | 14 ++++++++++++++ dockerBuild.sh | 37 +++++++++++++++++++++++++++++++++++++ scripts/build.sh | 20 -------------------- scripts/publish_docker.sh | 10 ---------- 6 files changed, 56 insertions(+), 50 deletions(-) create mode 100755 build.sh create mode 100755 dockerBuild.sh delete mode 100755 scripts/build.sh delete mode 100644 scripts/publish_docker.sh diff --git a/.travis.yml b/.travis.yml index d1472da..4026b88 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,23 +3,22 @@ language: minimal services: - docker script: -- scripts/build.sh ${TRAVIS_BRANCH} linux -- scripts/build.sh ${TRAVIS_BRANCH} darwin +- ./dockerBuild.sh ${TRAVIS_BRANCH} deploy: - provider: releases api_key: secure: x0x8TSocUv6fQ9xO5d/Ehn/iFypcqS0GzvycW1tXxPbG/m0I+PEsEDkCvia6Le5aa9uCPS/3DiCkt6h4sZEnWXqsWBAyaEXbAZgNCMT+NXSalgNsA/mHZi+EItzzwgi00vzHK7G6DFl2wZZq/11OGTngu2Xxin64EnnO2j55uCDkgX6Ifc5P0nD343ZJU8vb0hYEnjV6WvVWBYNINJOqEyyT+QjsSHWWzouVbkLlrBL8WmbvFDgmOAWASQWJqiyuuVrDCVufgCSWRikREUIJxFl65636RQ9Yau4l4JypC+OcYu5yxKN8cL/Yf09Nf7fFbYLk/REK0w57o/xbjDm6T6RIg4UDEBpG+29AZiz20m6c8V6sKo0IZL1rPh+k8OgWOKPZENakIdrxC3levRE8nxysG3f5w04sKFKD7g4kymLKPYSDkOxkHQiMJlccok0AkTa37BeqDqgPFfjkvnM18BUpPeolwNchB07/i62aREdmER9DTXQEsvdpwTOYMt6WDqasnVjvVMoudkEputV8NbJLf/st6OJdFjdMz3rfGbeM5aRNbf1Lz+lQBH1nGgVbc6/OddxdFJz1lXV4p8Ml9EOaMwiM7LjuqY45V8Xl9+XLeob0pRGZMROnye3lpmSQsxaQdta/S5Zlorz3IM5M3Qr3htuYID2NOrAPlGe3+ZM= file_glob: true - file: bin/* + file: bin/*.zip skip_cleanup: true on: tags: true - provider: script - script: bash scripts/publish_docker.sh ${TRAVIS_BRANCH} + script: bash scripts/publish_docker.sh ${TRAVIS_BRANCH} true on: tags: true - provider: script - script: bash scripts/publish_docker.sh ${TRAVIS_BRANCH} latest + script: bash scripts/publish_docker.sh ${TRAVIS_BRANCH} true on: branch: master env: diff --git a/Dockerfile b/Dockerfile index 4df9892..cf2ab99 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,9 @@ -FROM golang:1.13-alpine as builder - -ARG VERSION=master -ARG GOOS=linux - -WORKDIR /vault-admin/ -COPY . . - -RUN CGO_ENABLED=0 GOOS=${GOOS} go build -mod=vendor -ldflags "-X main.version=${VERSION}" -v -a -o vadmin . - -CMD ["/bin/sh", "-c", "vadmin"] - -# Stage 2 - FROM alpine:latest RUN apk --no-cache add ca-certificates ENV CONFIGURATION_PATH=/config -COPY --from=builder /vault-admin/vadmin /usr/bin +COPY /bin/vadmin-linux /usr/bin/vadmin ENTRYPOINT ["vadmin"] diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..c6300c2 --- /dev/null +++ b/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +VERSION=${1:-custom} +GOOS=${2:-linux} + +set -e + +GO111MODULE=on CGO_ENABLED=0 GOOS=${GOOS} GOARCH=amd64 go build -mod=vendor -ldflags="-s -w -X main.version=${VERSION}" -a -o ./bin/vadmin-${GOOS} + +cd bin +cp vadmin-${GOOS} vadmin +zip vadmin-${GOOS}-${VERSION}.zip vadmin +rm vadmin + diff --git a/dockerBuild.sh b/dockerBuild.sh new file mode 100755 index 0000000..36009bc --- /dev/null +++ b/dockerBuild.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +VERSION=${1:-master} +if [ "$VERSION" == "master" ]; then + VERSION="latest" +fi +PUBLISH=${2:-false} + +set -e + +echo "---------------------" +echo "Building vault-admin" +echo "---------------------" + +docker run --rm -v "$PWD":/go/fse -w /go/fse golang:1.13-alpine \ +apk add zip && ./build.sh ${VERSION} linux +docker run --rm -v "$PWD":/go/fse -w /go/fse golang:1.13-alpine \ +apk add zip && ./build.sh ${VERSION} darwin + +echo "" +echo "---------------------" +echo "Building vault-admin Container version: ${VERSION}" +echo "---------------------" + +DTAG="premiereglobal/vault-admin:${VERSION}" + +docker build . -t ${DTAG} + +echo "---------------------" +echo "Created Tag ${DTAG}" +echo "---------------------" + +if [[ ${PUBLISH} == "true" && -n $DOCKER_USERNAME && -n $DOCKER_PASSWORD ]]; then + echo "Pushing docker image: ${DTAG}" + docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" + docker push ${DTAG} +fi diff --git a/scripts/build.sh b/scripts/build.sh deleted file mode 100755 index 73e7f8a..0000000 --- a/scripts/build.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -. scripts/.env - -VERSION=${1:-master} -GOOS=${2:-linux} - -# Directory to house our binaries -mkdir -p bin - -# Build the binary in Docker and extract it from the container -docker build --build-arg VERSION=${VERSION} --build-arg GOOS=${GOOS} -t ${DOCKER_REPO}:${VERSION}-${GOOS} ./ -docker run --rm --name vault-admin-build -d ${DOCKER_REPO}:${VERSION}-${GOOS} sh -c "sleep 120" -docker cp vault-admin-build:/usr/bin/vadmin bin -docker stop vault-admin-build - -# Zip up the binary -cd bin -zip vadmin-${GOOS}-${VERSION}.zip vadmin -rm vadmin diff --git a/scripts/publish_docker.sh b/scripts/publish_docker.sh deleted file mode 100644 index 4d3bf3c..0000000 --- a/scripts/publish_docker.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -. scripts/.env - -SOURCE_VERSION=${1:-master} -PUBLISH_VERSION=${2:-$SOURCE_VERSION} - -docker tag ${DOCKER_REPO}:${SOURCE_VERSION}-linux ${DOCKER_REPO}:${PUBLISH_VERSION} -echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin -docker push ${DOCKER_REPO}:${PUBLISH_VERSION} From d0e06aed90b4d12853b7e6d95218292ef8ec3a3f Mon Sep 17 00:00:00 2001 From: Luke Wahlmeier Date: Thu, 24 Oct 2019 22:19:12 -0600 Subject: [PATCH 2/3] updated go version --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 846a1ce..f1b8f1c 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/PremiereGlobal/vault-admin -go 1.12 +go 1.13 require ( github.com/Sirupsen/logrus v1.0.6 From 3b29e3d6f996a82a3890cfe1ea11125d3a6fcb88 Mon Sep 17 00:00:00 2001 From: Luke Wahlmeier Date: Thu, 24 Oct 2019 22:28:27 -0600 Subject: [PATCH 3/3] fixed build --- dockerBuild.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dockerBuild.sh b/dockerBuild.sh index 36009bc..8307ed0 100755 --- a/dockerBuild.sh +++ b/dockerBuild.sh @@ -12,10 +12,10 @@ echo "---------------------" echo "Building vault-admin" echo "---------------------" -docker run --rm -v "$PWD":/go/fse -w /go/fse golang:1.13-alpine \ -apk add zip && ./build.sh ${VERSION} linux -docker run --rm -v "$PWD":/go/fse -w /go/fse golang:1.13-alpine \ -apk add zip && ./build.sh ${VERSION} darwin +docker run --rm -v "$PWD":/go/va -w /go/va golang:1.13-alpine \ +sh -c "apk add bash zip && ./build.sh ${VERSION} linux" +docker run --rm -v "$PWD":/go/va -w /go/va golang:1.13-alpine \ +sh -c "apk add bash zip && ./build.sh ${VERSION} darwin" echo "" echo "---------------------"