caddy-ingess/Dockerfile
Volker Thiel 3abf447b47
Build Go binary inside Docker (#22)
* Build Go binary inside Docker

You can (and should) use Docker to build Go programs. With this updated `Dockerfile` you can build the binary with one simple command `docker build -t your-image-name:tag .`, then push it to your favorite registry and use it in the Helm chart.

* Update Dockerfile from origin
2020-02-25 11:04:41 -07:00

27 lines
683 B
Docker

FROM golang:alpine AS build
WORKDIR /app
ADD . /app
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o ./bin/ingress-controller ./cmd/caddy
FROM alpine:latest as certs
RUN apk --update add ca-certificates
FROM golang:1.13.5 as builder
WORKDIR /build
ENV CGO_ENABLED=0
ENV GOOS=linux
ENV GOARCH=amd64
RUN mkdir -p ./bin
COPY go.mod go.sum ./
RUN go mod download
COPY ./cmd ./cmd
COPY ./pkg ./pkg
COPY ./internal ./internal
RUN go build -o ./bin/ingress-controller ./cmd/caddy
FROM scratch
COPY --from=builder /build/bin/ingress-controller .
COPY --from=certs /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
EXPOSE 80 443
ENTRYPOINT ["/ingress-controller"]