diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..0f21ac31 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +Makefile +mkdocs.yml +Dockerfile +Dockerfile.build +.goreleaser.yml +builds/ \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7e275b7b..7d28ccea 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /cover.out /cover.out.raw /sbom.spdx.json +builds/lagoon diff --git a/Dockerfile b/Dockerfile index 52156f70..77eb3660 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,12 +4,16 @@ WORKDIR /go/src/github.com/uselagoon/lagoon-cli/ COPY . . ARG VERSION +ARG OS +ENV OS=${OS:-linux} +ARG ARCH +ENV ARCH=${ARCH:-amd64} RUN apk update && apk add git RUN VERSION=${VERSION:-"$(echo $(git describe --abbrev=0 --tags)+$(git rev-parse --short=8 HEAD))"} \ && BUILD=$(date +%FT%T%z) \ - && CGO_ENABLED=0 GOOS=linux go build \ + && CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build \ -ldflags "-w -s -X github.com/uselagoon/lagoon-cli/cmd.lagoonCLIVersion=$VERSION \ -X github.com/uselagoon/lagoon-cli/cmd.lagoonCLIBuild=$BUILD \ -X github.com/uselagoon/lagoon-cli/cmd.lagoonCLIBuildGoVersion=go$GOLANG_VERSION" -o lagoon . diff --git a/Makefile b/Makefile index 3bb3015f..784febd9 100644 --- a/Makefile +++ b/Makefile @@ -74,24 +74,12 @@ test-docker: ## build using docker golang build-docker-linux: - docker run \ - -v $(PKGMODPATH):/go/pkg/mod \ - -v $(DIR):/go/src/${PKG}/ \ - -e GO111MODULE=on \ - -e GOOS=linux \ - -e GOARCH=amd64 \ - -w="/go/src/${PKG}/" \ - golang:$(DOCKER_GO_VER) go build -ldflags '${LDFLAGS} -X "${PKG}/cmd.lagoonCLIBuildGoVersion=${GO_VER}"' -o builds/lagoon-cli-${VERSION}-linux-amd64 + docker build . -t lagoon/lagoon-cli + docker run -v $(DIR):/app --entrypoint="/bin/sh" lagoon/lagoon-cli -c "cp /lagoon /app/builds/lagoon" build-docker-darwin: - docker run \ - -v $(PKGMODPATH):/go/pkg/mod \ - -v $(DIR):/go/src/${PKG}/ \ - -e GO111MODULE=on \ - -e GOOS=darwin \ - -e GOARCH=amd64 \ - -w="/go/src/${PKG}/" \ - golang:$(DOCKER_GO_VER) go build -ldflags '${LDFLAGS} -X "${PKG}/cmd.lagoonCLIBuildGoVersion=${GO_VER}"' -o builds/lagoon-cli-${VERSION}-darwin-amd64 + docker build . -t lagoon/lagoon-cli-darwin --build-arg OS=darwin --build-arg ARCH=arm64 + docker run -v $(DIR):/app --entrypoint="/bin/sh" lagoon/lagoon-cli-darwin -c "cp /lagoon /app/builds/lagoon" install-linux: cp builds/lagoon-cli-${VERSION}-linux-amd64 ${ARTIFACT_DESTINATION}/lagoon