2020-09-16 10:05:51 -04:00
|
|
|
# Copyright 2020 the Pinniped contributors. All Rights Reserved.
|
2020-08-09 10:04:05 -07:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
2020-09-16 14:59:35 +00:00
|
|
|
FROM golang:1.15.2 as build-env
|
2020-07-16 23:52:53 -04:00
|
|
|
|
2020-07-06 16:54:04 -07:00
|
|
|
WORKDIR /work
|
|
|
|
# Get dependencies first so they can be cached as a layer
|
2020-08-12 15:57:27 -05:00
|
|
|
COPY go.* ./
|
2020-08-24 14:30:45 -05:00
|
|
|
COPY generated/1.19/apis/go.* ./generated/1.19/apis/
|
|
|
|
COPY generated/1.19/client/go.* ./generated/1.19/client/
|
2020-07-06 16:54:04 -07:00
|
|
|
RUN go mod download
|
2020-08-12 15:57:27 -05:00
|
|
|
|
2020-07-23 11:05:21 -04:00
|
|
|
# Copy only the production source code to avoid cache misses when editing other files
|
2020-08-24 14:30:45 -05:00
|
|
|
COPY generated ./generated
|
2020-07-23 11:05:21 -04:00
|
|
|
COPY cmd ./cmd
|
|
|
|
COPY internal ./internal
|
|
|
|
COPY tools ./tools
|
|
|
|
COPY hack ./hack
|
2020-08-12 15:57:27 -05:00
|
|
|
|
2020-08-05 17:43:24 -07:00
|
|
|
# Build the executable binary (CGO_ENABLED=0 means static linking)
|
2020-09-09 19:06:39 -07:00
|
|
|
RUN mkdir out \
|
2020-10-06 14:59:03 -04:00
|
|
|
&& CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "$(hack/get-ldflags.sh)" -o out ./cmd/pinniped-concierge/... \
|
2020-10-05 17:28:19 -07:00
|
|
|
&& CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "$(hack/get-ldflags.sh)" -o out ./cmd/pinniped-supervisor/... \
|
2020-09-10 15:20:02 -07:00
|
|
|
&& CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o out ./cmd/local-user-authenticator/...
|
2020-07-06 16:54:04 -07:00
|
|
|
|
2020-08-12 15:57:27 -05:00
|
|
|
# Use a runtime image based on Debian slim
|
2020-08-14 10:52:29 -05:00
|
|
|
FROM debian:10.5-slim
|
2020-08-12 15:57:27 -05:00
|
|
|
|
2020-09-09 19:06:39 -07:00
|
|
|
# Copy the binaries from the build-env stage
|
2020-10-06 14:59:03 -04:00
|
|
|
COPY --from=build-env /work/out/pinniped-concierge /usr/local/bin/pinniped-concierge
|
2020-10-05 17:28:19 -07:00
|
|
|
COPY --from=build-env /work/out/pinniped-supervisor /usr/local/bin/pinniped-supervisor
|
2020-09-10 15:20:02 -07:00
|
|
|
COPY --from=build-env /work/out/local-user-authenticator /usr/local/bin/local-user-authenticator
|
2020-08-12 15:57:27 -05:00
|
|
|
|
2020-07-06 16:54:04 -07:00
|
|
|
# Document the port
|
2020-07-23 11:05:21 -04:00
|
|
|
EXPOSE 443
|
2020-08-12 15:57:27 -05:00
|
|
|
|
|
|
|
# Set the entrypoint
|
2020-10-06 14:59:03 -04:00
|
|
|
ENTRYPOINT ["/usr/local/bin/pinniped-concierge"]
|