From 1f6193e486bae0df490fa67fd06e5933a4416ac1 Mon Sep 17 00:00:00 2001 From: Ian Fijolek Date: Thu, 10 Oct 2019 17:20:42 -0700 Subject: [PATCH] First go at Docker builds --- Dockerfile | 8 ++++++++ Dockerfile.multi-stage | 23 +++++++++++++++++++++++ Makefile | 10 ++++++++++ 3 files changed, 41 insertions(+) create mode 100644 Dockerfile create mode 100644 Dockerfile.multi-stage diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..12c145b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +ARG REPO=library +FROM ${REPO}/busybox:latest +WORKDIR /root/ + +ARG ARCH=amd64 +COPY ./minitor-go ./minitor + +ENTRYPOINT [ "./minitor" ] diff --git a/Dockerfile.multi-stage b/Dockerfile.multi-stage new file mode 100644 index 0000000..51423ae --- /dev/null +++ b/Dockerfile.multi-stage @@ -0,0 +1,23 @@ +ARG REPO=library +FROM golang:1.12-alpine AS builder + +RUN apk add --no-cache git + +RUN mkdir /app +WORKDIR /app + +COPY ./go.mod ./go.sum /app/ +RUN go mod download + +COPY ./*.go /app/ + +ARG ARCH=amd64 +ARG VERSION=dev +ENV CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} +RUN go build -ldflags "-X main.version=${VERSION}" -a -installsuffix nocgo -o minitor . + +FROM ${REPO}/busybox:latest +WORKDIR /root/ +COPY --from=builder /app/minitor . + +ENTRYPOINT [ "./minitor" ] diff --git a/Makefile b/Makefile index f448b97..c03eadb 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +DOCKER_TAG ?= minitor-go-${USER} + .PHONY: test default: test @@ -27,3 +29,11 @@ test: clean: rm -f ./minitor-go rm -f ./coverage.out + +.PHONY: docker-build +docker-build: + docker build -f ./Dockerfile.multi-stage -t $(DOCKER_TAG) . + +.PHONY: docker-run +docker-run: docker-build + docker run --rm -v $(shell pwd)/config.yml:/root/config.yml $(DOCKER_TAG)