diff --git a/cmd/builder/Dockerfile.fission-builder b/cmd/builder/Dockerfile.fission-builder index c87062e2..f532dc4d 100644 --- a/cmd/builder/Dockerfile.fission-builder +++ b/cmd/builder/Dockerfile.fission-builder @@ -1,3 +1,6 @@ +FROM alpine:3.10 as base +RUN apk add --update ca-certificates + FROM golang:1.11-alpine as fission-builder 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') 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 + RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \ -o /go/bin/builder \ -gcflags=-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}" -FROM alpine:3.5 +FROM base COPY --from=fission-builder /go/bin/builder / EXPOSE 8001 diff --git a/cmd/fetcher/Dockerfile.fission-fetcher b/cmd/fetcher/Dockerfile.fission-fetcher index b736d4e0..8915b7cb 100644 --- a/cmd/fetcher/Dockerfile.fission-fetcher +++ b/cmd/fetcher/Dockerfile.fission-fetcher @@ -1,3 +1,6 @@ +FROM alpine:3.10 as base +RUN apk add --update ca-certificates + FROM golang:1.11-alpine as builder 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') 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 + RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \ -o /go/bin/fetcher \ -gcflags=-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}" -FROM alpine:3.4 +FROM base COPY --from=builder /go/bin/fetcher / EXPOSE 8000 diff --git a/cmd/fission-bundle/Dockerfile.fission-bundle b/cmd/fission-bundle/Dockerfile.fission-bundle index edae5b30..0e283855 100644 --- a/cmd/fission-bundle/Dockerfile.fission-bundle +++ b/cmd/fission-bundle/Dockerfile.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 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') 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 -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 \ -gcflags=-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}" -FROM alpine:3.4 -RUN apk add --update ca-certificates +FROM base COPY --from=builder /go/bin/fission-bundle / ENTRYPOINT ["/fission-bundle"] diff --git a/cmd/preupgradechecks/Dockerfile.fission-preupgradechecks b/cmd/preupgradechecks/Dockerfile.fission-preupgradechecks index 8c471404..4990aec4 100644 --- a/cmd/preupgradechecks/Dockerfile.fission-preupgradechecks +++ b/cmd/preupgradechecks/Dockerfile.fission-preupgradechecks @@ -1,3 +1,6 @@ +FROM alpine:3.10 as base +RUN apk add --update ca-certificates + FROM golang:1.11-alpine as builder 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') 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 -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 \ -gcflags=-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}" - -FROM alpine:3.4 -RUN apk add --update ca-certificates +FROM base COPY --from=builder /go/bin/pre-upgrade-checks / ENTRYPOINT ["/pre-upgrade-checks"] diff --git a/environments/go/Dockerfile b/environments/go/Dockerfile index 371f4c53..1bb975a8 100644 --- a/environments/go/Dockerfile +++ b/environments/go/Dockerfile @@ -1,21 +1,24 @@ 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 ENV GOPATH /usr ENV APP ${GOPATH}/src/github.com/fission/fission/environments/go +WORKDIR ${APP} + ADD context ${APP}/context ADD server.go ${APP} -WORKDIR ${APP} RUN go get RUN go build -a -o /server server.go -FROM ubuntu:18.04 -WORKDIR / +FROM base COPY --from=builder /server / -RUN apt update && apt install -y ca-certificates && rm -rf /var/lib/apt/lists/* ENTRYPOINT ["/server"] EXPOSE 8888 diff --git a/environments/go/Dockerfile-1.11.4 b/environments/go/Dockerfile-1.11.4 index b27a5382..226dbdfb 100644 --- a/environments/go/Dockerfile-1.11.4 +++ b/environments/go/Dockerfile-1.11.4 @@ -1,21 +1,24 @@ 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 ENV GOPATH /usr ENV APP ${GOPATH}/src/github.com/fission/fission/environments/go +WORKDIR ${APP} + ADD context ${APP}/context ADD server.go ${APP} -WORKDIR ${APP} RUN go get RUN go build -a -o /server server.go -FROM ubuntu:18.04 -WORKDIR / +FROM base COPY --from=builder /server / -RUN apt update && apt install -y ca-certificates && rm -rf /var/lib/apt/lists/* ENTRYPOINT ["/server"] EXPOSE 8888 diff --git a/environments/jvm/builder/Dockerfile b/environments/jvm/builder/Dockerfile index 18d37221..aefee337 100644 --- a/environments/jvm/builder/Dockerfile +++ b/environments/jvm/builder/Dockerfile @@ -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 JAVA_VERSION 8u181 -ENV JAVA_ALPINE_VERSION 8.181.13-r0 +ENV JAVA_ALPINE_VERSION 8.212.04-r0 RUN set -x \ && apk add --no-cache \ @@ -44,4 +44,4 @@ ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2" ## Fission builder specific section ADD build.sh /usr/local/bin/build -EXPOSE 8001 \ No newline at end of file +EXPOSE 8001