From cc23ecea3d1a2bc466115aaa0b1156e851b22e93 Mon Sep 17 00:00:00 2001 From: Thomas Krzero Date: Sat, 4 Nov 2017 00:48:56 +0100 Subject: [PATCH 1/2] Multi stage docker build --- Dockerfile.build | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 Dockerfile.build diff --git a/Dockerfile.build b/Dockerfile.build deleted file mode 100644 index a2e1dfb..0000000 --- a/Dockerfile.build +++ /dev/null @@ -1,42 +0,0 @@ -FROM golang:1.9 -MAINTAINER Streamlist - -RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/* - -WORKDIR /go/src/github.com/streamlist/streamlist - -ARG STREAMLIST_VERSION=unknown - -ENV GODEBUG="netdns=go http2server=0" -ENV GOPATH="/go" - -RUN go get \ - github.com/jteeuwen/go-bindata/... \ - github.com/PuerkitoBio/goquery \ - github.com/armon/circbuf \ - github.com/disintegration/imaging \ - github.com/dustin/go-humanize \ - github.com/julienschmidt/httprouter \ - github.com/eduncan911/podcast \ - github.com/rylio/ytdl \ - go.uber.org/zap \ - golang.org/x/crypto/acme/autocert - -COPY *.go ./ -COPY internal ./internal -COPY static ./static -COPY templates ./templates - -RUN go fmt && \ - go vet --all && \ - go-bindata --pkg main static/... templates/... - -RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \ - go build -v --compiler gc --ldflags "-extldflags -static -s -w -X main.version=${STREAMLIST_VERSION}" -o /usr/bin/streamlist-linux-amd64 - -RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 \ - go build -v --compiler gc --ldflags "-extldflags -static -s -w -X main.version=${STREAMLIST_VERSION}" -o /usr/bin/streamlist-linux-armv7 - -RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 \ - go build -v --compiler gc --ldflags "-extldflags -static -s -w -X main.version=${STREAMLIST_VERSION}" -o /usr/bin/streamlist-linux-arm64 - From 72c21046ffb9c372b922a1bf3ebbbbab2f1f523f Mon Sep 17 00:00:00 2001 From: Thomas Krzero Date: Sat, 4 Nov 2017 00:51:04 +0100 Subject: [PATCH 2/2] Multi stage docker build --- Dockerfile | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index f0befca..d5d1ed9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,45 @@ +FROM golang:1.9-alpine as build + +RUN apk add --no-cache git + +WORKDIR /go/src/github.com/streamlist/streamlist + +ARG STREAMLIST_VERSION=unknown + +ENV GODEBUG="netdns=go http2server=0" +ENV GOPATH="/go" + +RUN go get \ + github.com/jteeuwen/go-bindata/... \ + github.com/PuerkitoBio/goquery \ + github.com/armon/circbuf \ + github.com/disintegration/imaging \ + github.com/dustin/go-humanize \ + github.com/julienschmidt/httprouter \ + github.com/eduncan911/podcast \ + github.com/rylio/ytdl \ + go.uber.org/zap \ + golang.org/x/crypto/acme/autocert + +COPY *.go ./ +COPY internal ./internal +COPY static ./static +COPY templates ./templates + +RUN go fmt && \ + go vet --all && \ + go-bindata --pkg main static/... templates/... + +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \ + go build -v --compiler gc --ldflags "-extldflags -static -s -w -X main.version=${STREAMLIST_VERSION}" -o /usr/bin/streamlist-linux-amd64 + +#RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 \ +# go build -v --compiler gc --ldflags "-extldflags -static -s -w -X main.version=${STREAMLIST_VERSION}" -o /usr/bin/streamlist-linux-armv7 + +#RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 \ +# go build -v --compiler gc --ldflags "-extldflags -static -s -w -X main.version=${STREAMLIST_VERSION}" -o /usr/bin/streamlist-linux-arm64 + FROM alpine:latest -MAINTAINER Streamlist RUN apk --no-cache add \ curl \ @@ -8,6 +48,6 @@ RUN apk --no-cache add \ WORKDIR /data -COPY streamlist-linux-amd64 /usr/bin/streamlist +COPY --from=build /usr/bin/streamlist-linux-amd64 /usr/bin/streamlist ENTRYPOINT ["/usr/bin/streamlist"]