Reuse go docker build cache (#1218)
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
FROM alpine:3.10 as base
|
||||||
|
RUN apk add --update ca-certificates
|
||||||
|
|
||||||
FROM golang:1.11-alpine as fission-builder
|
FROM golang:1.11-alpine as fission-builder
|
||||||
RUN apk add bash ca-certificates git gcc g++ libc-dev
|
RUN apk add bash ca-certificates git gcc g++ libc-dev
|
||||||
|
|
||||||
@@ -11,15 +14,28 @@ ARG BUILDDATE=unknown
|
|||||||
# E.g. BUILDDATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
# E.g. BUILDDATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
||||||
|
|
||||||
ARG GOPKG=github.com/fission/fission
|
ARG GOPKG=github.com/fission/fission
|
||||||
COPY . /go/src/${GOPKG}
|
|
||||||
|
ENV GO111MODULE=on
|
||||||
|
|
||||||
|
WORKDIR /go/src/${GOPKG}
|
||||||
|
|
||||||
|
# To reuse build cache, copy go.mod & go.sum and download dependencies first.
|
||||||
|
COPY go.* ./
|
||||||
|
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
# Copy whole fission directory to work dir
|
||||||
|
COPY ./ ./
|
||||||
|
|
||||||
WORKDIR /go/src/${GOPKG}/cmd/builder
|
WORKDIR /go/src/${GOPKG}/cmd/builder
|
||||||
|
|
||||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
||||||
-o /go/bin/builder \
|
-o /go/bin/builder \
|
||||||
-gcflags=-trimpath=$GOPATH \
|
-gcflags=-trimpath=$GOPATH \
|
||||||
-asmflags=-trimpath=$GOPATH \
|
-asmflags=-trimpath=$GOPATH \
|
||||||
-ldflags "-X github.com/fission/fission/pkg/info.GitCommit=${GITCOMMIT} -X github.com/fission/fission/pkg/info.BuildDate=${BUILDDATE} -X github.com/fission/fission/pkg/info.Version=${BUILDVERSION}"
|
-ldflags "-X github.com/fission/fission/pkg/info.GitCommit=${GITCOMMIT} -X github.com/fission/fission/pkg/info.BuildDate=${BUILDDATE} -X github.com/fission/fission/pkg/info.Version=${BUILDVERSION}"
|
||||||
|
|
||||||
FROM alpine:3.5
|
FROM base
|
||||||
COPY --from=fission-builder /go/bin/builder /
|
COPY --from=fission-builder /go/bin/builder /
|
||||||
EXPOSE 8001
|
EXPOSE 8001
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
FROM alpine:3.10 as base
|
||||||
|
RUN apk add --update ca-certificates
|
||||||
|
|
||||||
FROM golang:1.11-alpine as builder
|
FROM golang:1.11-alpine as builder
|
||||||
RUN apk add bash ca-certificates git gcc g++ libc-dev
|
RUN apk add bash ca-certificates git gcc g++ libc-dev
|
||||||
|
|
||||||
@@ -11,15 +14,28 @@ ARG BUILDDATE=unknown
|
|||||||
# E.g. BUILDDATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
# E.g. BUILDDATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
||||||
|
|
||||||
ARG GOPKG=github.com/fission/fission
|
ARG GOPKG=github.com/fission/fission
|
||||||
COPY . /go/src/${GOPKG}
|
|
||||||
|
ENV GO111MODULE=on
|
||||||
|
|
||||||
|
WORKDIR /go/src/${GOPKG}
|
||||||
|
|
||||||
|
# To reuse build cache, copy go.mod & go.sum and download dependencies first.
|
||||||
|
COPY go.* ./
|
||||||
|
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
# Copy whole fission directory to work dir
|
||||||
|
COPY ./ ./
|
||||||
|
|
||||||
WORKDIR /go/src/${GOPKG}/cmd/fetcher
|
WORKDIR /go/src/${GOPKG}/cmd/fetcher
|
||||||
|
|
||||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
||||||
-o /go/bin/fetcher \
|
-o /go/bin/fetcher \
|
||||||
-gcflags=-trimpath=$GOPATH \
|
-gcflags=-trimpath=$GOPATH \
|
||||||
-asmflags=-trimpath=$GOPATH \
|
-asmflags=-trimpath=$GOPATH \
|
||||||
-ldflags "-X github.com/fission/fission/pkg/info.GitCommit=${GITCOMMIT} -X github.com/fission/fission/pkg/info.BuildDate=${BUILDDATE} -X github.com/fission/fission/pkg/info.Version=${BUILDVERSION}"
|
-ldflags "-X github.com/fission/fission/pkg/info.GitCommit=${GITCOMMIT} -X github.com/fission/fission/pkg/info.BuildDate=${BUILDDATE} -X github.com/fission/fission/pkg/info.Version=${BUILDVERSION}"
|
||||||
|
|
||||||
FROM alpine:3.4
|
FROM base
|
||||||
COPY --from=builder /go/bin/fetcher /
|
COPY --from=builder /go/bin/fetcher /
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
FROM alpine:3.10 as base
|
||||||
|
RUN apk add --update ca-certificates
|
||||||
|
|
||||||
FROM golang:1.11-alpine as builder
|
FROM golang:1.11-alpine as builder
|
||||||
RUN apk add bash ca-certificates git gcc g++ libc-dev
|
RUN apk add bash ca-certificates git gcc g++ libc-dev
|
||||||
|
|
||||||
@@ -11,18 +14,28 @@ ARG BUILDDATE=unknown
|
|||||||
# E.g. BUILDDATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
# E.g. BUILDDATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
||||||
|
|
||||||
ARG GOPKG=github.com/fission/fission
|
ARG GOPKG=github.com/fission/fission
|
||||||
COPY . /go/src/${GOPKG}
|
|
||||||
RUN rm -f /go/src/${GOPKG}/Dockerfile*
|
|
||||||
WORKDIR /go/src/${GOPKG}/cmd/fission-bundle
|
|
||||||
ENV GO111MODULE=on
|
ENV GO111MODULE=on
|
||||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -mod vendor \
|
|
||||||
|
WORKDIR /go/src/${GOPKG}
|
||||||
|
|
||||||
|
# To reuse build cache, copy go.mod & go.sum and download dependencies first.
|
||||||
|
COPY go.* ./
|
||||||
|
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
# Copy whole fission directory to work dir
|
||||||
|
COPY ./ ./
|
||||||
|
|
||||||
|
WORKDIR /go/src/${GOPKG}/cmd/fission-bundle
|
||||||
|
|
||||||
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
||||||
-o /go/bin/fission-bundle \
|
-o /go/bin/fission-bundle \
|
||||||
-gcflags=-trimpath=$GOPATH \
|
-gcflags=-trimpath=$GOPATH \
|
||||||
-asmflags=-trimpath=$GOPATH \
|
-asmflags=-trimpath=$GOPATH \
|
||||||
-ldflags "-X github.com/fission/fission/pkg/info.GitCommit=${GITCOMMIT} -X github.com/fission/fission/pkg/info.BuildDate=${BUILDDATE} -X github.com/fission/fission/pkg/info.Version=${BUILDVERSION}"
|
-ldflags "-X github.com/fission/fission/pkg/info.GitCommit=${GITCOMMIT} -X github.com/fission/fission/pkg/info.BuildDate=${BUILDDATE} -X github.com/fission/fission/pkg/info.Version=${BUILDVERSION}"
|
||||||
|
|
||||||
FROM alpine:3.4
|
FROM base
|
||||||
RUN apk add --update ca-certificates
|
|
||||||
COPY --from=builder /go/bin/fission-bundle /
|
COPY --from=builder /go/bin/fission-bundle /
|
||||||
|
|
||||||
ENTRYPOINT ["/fission-bundle"]
|
ENTRYPOINT ["/fission-bundle"]
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
FROM alpine:3.10 as base
|
||||||
|
RUN apk add --update ca-certificates
|
||||||
|
|
||||||
FROM golang:1.11-alpine as builder
|
FROM golang:1.11-alpine as builder
|
||||||
RUN apk add bash ca-certificates git gcc g++ libc-dev
|
RUN apk add bash ca-certificates git gcc g++ libc-dev
|
||||||
|
|
||||||
@@ -11,17 +14,28 @@ ARG BUILDDATE=unknown
|
|||||||
# E.g. BUILDDATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
# E.g. BUILDDATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
||||||
|
|
||||||
ARG GOPKG=github.com/fission/fission
|
ARG GOPKG=github.com/fission/fission
|
||||||
COPY . /go/src/${GOPKG}
|
|
||||||
|
ENV GO111MODULE=on
|
||||||
|
|
||||||
|
WORKDIR /go/src/${GOPKG}
|
||||||
|
|
||||||
|
# To reuse build cache, copy go.mod & go.sum and download dependencies first.
|
||||||
|
COPY go.* ./
|
||||||
|
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
# Copy whole fission directory to work dir
|
||||||
|
COPY ./ ./
|
||||||
|
|
||||||
WORKDIR /go/src/${GOPKG}/cmd/preupgradechecks
|
WORKDIR /go/src/${GOPKG}/cmd/preupgradechecks
|
||||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a \
|
|
||||||
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
||||||
-o /go/bin/pre-upgrade-checks \
|
-o /go/bin/pre-upgrade-checks \
|
||||||
-gcflags=-trimpath=$GOPATH \
|
-gcflags=-trimpath=$GOPATH \
|
||||||
-asmflags=-trimpath=$GOPATH \
|
-asmflags=-trimpath=$GOPATH \
|
||||||
-ldflags "-X github.com/fission/fission/pkg/info.GitCommit=${GITCOMMIT} -X github.com/fission/fission/pkg/info.BuildDate=${BUILDDATE} -X github.com/fission/fission/pkg/info.Version=${BUILDVERSION}"
|
-ldflags "-X github.com/fission/fission/pkg/info.GitCommit=${GITCOMMIT} -X github.com/fission/fission/pkg/info.BuildDate=${BUILDDATE} -X github.com/fission/fission/pkg/info.Version=${BUILDVERSION}"
|
||||||
|
|
||||||
|
FROM base
|
||||||
FROM alpine:3.4
|
|
||||||
RUN apk add --update ca-certificates
|
|
||||||
COPY --from=builder /go/bin/pre-upgrade-checks /
|
COPY --from=builder /go/bin/pre-upgrade-checks /
|
||||||
|
|
||||||
ENTRYPOINT ["/pre-upgrade-checks"]
|
ENTRYPOINT ["/pre-upgrade-checks"]
|
||||||
|
|||||||
@@ -1,21 +1,24 @@
|
|||||||
ARG GO_VERSION=1.9.2
|
ARG GO_VERSION=1.9.2
|
||||||
|
|
||||||
|
FROM ubuntu:18.04 AS base
|
||||||
|
WORKDIR /
|
||||||
|
RUN apt update && apt install -y ca-certificates && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
FROM golang:${GO_VERSION} AS builder
|
FROM golang:${GO_VERSION} AS builder
|
||||||
|
|
||||||
ENV GOPATH /usr
|
ENV GOPATH /usr
|
||||||
ENV APP ${GOPATH}/src/github.com/fission/fission/environments/go
|
ENV APP ${GOPATH}/src/github.com/fission/fission/environments/go
|
||||||
|
|
||||||
|
WORKDIR ${APP}
|
||||||
|
|
||||||
ADD context ${APP}/context
|
ADD context ${APP}/context
|
||||||
ADD server.go ${APP}
|
ADD server.go ${APP}
|
||||||
|
|
||||||
WORKDIR ${APP}
|
|
||||||
RUN go get
|
RUN go get
|
||||||
RUN go build -a -o /server server.go
|
RUN go build -a -o /server server.go
|
||||||
|
|
||||||
FROM ubuntu:18.04
|
FROM base
|
||||||
WORKDIR /
|
|
||||||
COPY --from=builder /server /
|
COPY --from=builder /server /
|
||||||
RUN apt update && apt install -y ca-certificates && rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
ENTRYPOINT ["/server"]
|
ENTRYPOINT ["/server"]
|
||||||
EXPOSE 8888
|
EXPOSE 8888
|
||||||
|
|||||||
@@ -1,21 +1,24 @@
|
|||||||
ARG GO_VERSION=1.11.4
|
ARG GO_VERSION=1.11.4
|
||||||
|
|
||||||
|
FROM ubuntu:18.04 AS base
|
||||||
|
WORKDIR /
|
||||||
|
RUN apt update && apt install -y ca-certificates && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
FROM golang:${GO_VERSION} AS builder
|
FROM golang:${GO_VERSION} AS builder
|
||||||
|
|
||||||
ENV GOPATH /usr
|
ENV GOPATH /usr
|
||||||
ENV APP ${GOPATH}/src/github.com/fission/fission/environments/go
|
ENV APP ${GOPATH}/src/github.com/fission/fission/environments/go
|
||||||
|
|
||||||
|
WORKDIR ${APP}
|
||||||
|
|
||||||
ADD context ${APP}/context
|
ADD context ${APP}/context
|
||||||
ADD server.go ${APP}
|
ADD server.go ${APP}
|
||||||
|
|
||||||
WORKDIR ${APP}
|
|
||||||
RUN go get
|
RUN go get
|
||||||
RUN go build -a -o /server server.go
|
RUN go build -a -o /server server.go
|
||||||
|
|
||||||
FROM ubuntu:18.04
|
FROM base
|
||||||
WORKDIR /
|
|
||||||
COPY --from=builder /server /
|
COPY --from=builder /server /
|
||||||
RUN apt update && apt install -y ca-certificates && rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
ENTRYPOINT ["/server"]
|
ENTRYPOINT ["/server"]
|
||||||
EXPOSE 8888
|
EXPOSE 8888
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
|
|||||||
ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
|
ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
|
||||||
|
|
||||||
ENV JAVA_VERSION 8u181
|
ENV JAVA_VERSION 8u181
|
||||||
ENV JAVA_ALPINE_VERSION 8.181.13-r0
|
ENV JAVA_ALPINE_VERSION 8.212.04-r0
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -x \
|
||||||
&& apk add --no-cache \
|
&& apk add --no-cache \
|
||||||
@@ -44,4 +44,4 @@ ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"
|
|||||||
|
|
||||||
## Fission builder specific section
|
## Fission builder specific section
|
||||||
ADD build.sh /usr/local/bin/build
|
ADD build.sh /usr/local/bin/build
|
||||||
EXPOSE 8001
|
EXPOSE 8001
|
||||||
|
|||||||
Reference in New Issue
Block a user