2020-07-06 23:54:04 +00:00
|
|
|
FROM golang:1.14-alpine as build-env
|
2020-07-17 03:52:53 +00:00
|
|
|
|
|
|
|
# It is important that these ARG's are defined after the FROM statement
|
|
|
|
ARG ACCESS_TOKEN_USR="nothing"
|
|
|
|
ARG ACCESS_TOKEN_PWD="nothing"
|
|
|
|
|
|
|
|
# git is required to fetch go dependencies
|
2020-07-20 04:21:47 +00:00
|
|
|
RUN apk add --no-cache ca-certificates git bash
|
2020-07-17 03:52:53 +00:00
|
|
|
|
|
|
|
# Create a netrc file using the credentials specified using --build-arg
|
|
|
|
RUN printf "machine github.com\n\
|
|
|
|
login ${ACCESS_TOKEN_USR}\n\
|
|
|
|
password ${ACCESS_TOKEN_PWD}\n\
|
|
|
|
\n\
|
|
|
|
machine api.github.com\n\
|
|
|
|
login ${ACCESS_TOKEN_USR}\n\
|
|
|
|
password ${ACCESS_TOKEN_PWD}\n"\
|
|
|
|
>> /root/.netrc
|
|
|
|
RUN chmod 600 /root/.netrc
|
|
|
|
|
2020-07-06 23:54:04 +00:00
|
|
|
RUN mkdir /work
|
|
|
|
RUN mkdir /work/out
|
|
|
|
WORKDIR /work
|
|
|
|
# Get dependencies first so they can be cached as a layer
|
|
|
|
COPY go.mod .
|
|
|
|
COPY go.sum .
|
2020-07-29 21:24:16 +00:00
|
|
|
COPY pkg/client/go.mod ./pkg/client/go.mod
|
|
|
|
COPY pkg/client/go.sum ./pkg/client/go.sum
|
2020-07-06 23:54:04 +00:00
|
|
|
RUN go mod download
|
2020-07-23 15:05:21 +00:00
|
|
|
# Copy only the production source code to avoid cache misses when editing other files
|
|
|
|
COPY cmd ./cmd
|
|
|
|
COPY internal ./internal
|
|
|
|
COPY pkg ./pkg
|
|
|
|
COPY tools ./tools
|
|
|
|
COPY hack ./hack
|
2020-07-06 23:54:04 +00:00
|
|
|
# Build the executable binary
|
2020-07-27 20:32:14 +00:00
|
|
|
RUN GOOS=linux GOARCH=amd64 go build -ldflags "$(hack/get-ldflags.sh)" -o out ./cmd/placeholder-name-server/...
|
2020-07-06 23:54:04 +00:00
|
|
|
|
|
|
|
FROM alpine:latest
|
|
|
|
# Install CA certs and some tools for debugging
|
|
|
|
RUN apk --update --no-cache add ca-certificates bash curl
|
|
|
|
WORKDIR /root/
|
|
|
|
# Copy the binary from the build-env stage
|
2020-07-27 20:32:14 +00:00
|
|
|
COPY --from=build-env /work/out/placeholder-name-server placeholder-name-server
|
2020-07-06 23:54:04 +00:00
|
|
|
# Document the port
|
2020-07-23 15:05:21 +00:00
|
|
|
EXPOSE 443
|
2020-07-06 23:54:04 +00:00
|
|
|
# Set the command
|
2020-07-27 20:32:14 +00:00
|
|
|
CMD ["./placeholder-name-server"]
|