From 772659557aaf7ce08a5accc1cd66e9b63b338d89 Mon Sep 17 00:00:00 2001 From: Jannis Schaefer Date: Wed, 24 Jan 2018 14:05:25 +0100 Subject: [PATCH 1/2] add Dockerfile for Raspberry Pi --- Dockerfile | 13 +++++++++++++ Makefile | 3 +++ 2 files changed, 16 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4338c8d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM golang:1.9 AS build-env + +WORKDIR /go/src/github.com/larsp/co2monitor + +COPY . ./ + +RUN go-wrapper download + +RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -v -ldflags "-w -s" -a -installsuffix cgo -o /out/co2monitor + +FROM scratch +COPY --from=build-env /out/co2monitor / +ENTRYPOINT [ "./co2monitor" ] \ No newline at end of file diff --git a/Makefile b/Makefile index 38a71dc..a192f90 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,9 @@ build: build_pi: GOOS=linux GOARCH=arm GOARM=6 go build -v +build_docker_pi: + docker build . + test: go test --race -v ./... From 915b8b25d272e028685bdea033802cbaecb1dc38 Mon Sep 17 00:00:00 2001 From: Jannis Schaefer Date: Wed, 24 Jan 2018 14:17:01 +0100 Subject: [PATCH 2/2] better caching of go dependencies --- Dockerfile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4338c8d..eff49aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,14 @@ -FROM golang:1.9 AS build-env +FROM golang:1.9.3-stretch AS build-env -WORKDIR /go/src/github.com/larsp/co2monitor +RUN go-wrapper download github.com/golang/dep/cmd/dep && go-wrapper install github.com/golang/dep/cmd/dep -COPY . ./ +WORKDIR /go/src/github.com/larsp/co2monitor -RUN go-wrapper download +# only copy Gopkg.toml and Gopkg.lock for now so dep ensure run keeps cached till those files are changed +COPY Gopkg.* ./ +RUN dep ensure -v --vendor-only +COPY . ./ RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -v -ldflags "-w -s" -a -installsuffix cgo -o /out/co2monitor FROM scratch