Switch to Debian base images.

Signed-off-by: Matt Moyer <moyerm@vmware.com>
This commit is contained in:
Matt Moyer 2020-08-12 15:57:27 -05:00
parent ba0b997234
commit c02b6fee8f
2 changed files with 17 additions and 23 deletions

View File

@ -1,15 +1,12 @@
# Copyright 2020 VMware, Inc. # Copyright 2020 VMware, Inc.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
FROM golang:1.15.0-alpine as build-env FROM golang:1.15.0 as build-env
# It is important that these ARG's are defined after the FROM statement # It is important that these ARG's are defined after the FROM statement
ARG ACCESS_TOKEN_USR="nothing" ARG ACCESS_TOKEN_USR="nothing"
ARG ACCESS_TOKEN_PWD="nothing" ARG ACCESS_TOKEN_PWD="nothing"
# git is required to fetch go dependencies
RUN apk add --no-cache ca-certificates git bash
# Create a netrc file using the credentials specified using --build-arg # Create a netrc file using the credentials specified using --build-arg
RUN printf "machine github.com\n\ RUN printf "machine github.com\n\
login ${ACCESS_TOKEN_USR}\n\ login ${ACCESS_TOKEN_USR}\n\
@ -18,19 +15,15 @@ RUN printf "machine github.com\n\
machine api.github.com\n\ machine api.github.com\n\
login ${ACCESS_TOKEN_USR}\n\ login ${ACCESS_TOKEN_USR}\n\
password ${ACCESS_TOKEN_PWD}\n"\ password ${ACCESS_TOKEN_PWD}\n"\
>> /root/.netrc >> /root/.netrc && chmod 600 /root/.netrc && mkdir /work && mkdir /work/out
RUN chmod 600 /root/.netrc
RUN mkdir /work
RUN mkdir /work/out
WORKDIR /work WORKDIR /work
# Get dependencies first so they can be cached as a layer # Get dependencies first so they can be cached as a layer
COPY go.mod go.sum ./ COPY go.* ./
COPY pkg/client/go.mod pkg/client/go.sum ./pkg/client/ COPY pkg/client/go.* ./pkg/client/
COPY kubernetes/1.19/api/go.mod kubernetes/1.19/api/go.sum ./kubernetes/1.19/api/ COPY kubernetes/1.19/api/go.* ./kubernetes/1.19/api/
COPY kubernetes/1.19/client-go/go.mod kubernetes/1.19/client-go/go.sum ./kubernetes/1.19/client-go/ COPY kubernetes/1.19/client-go/go.* ./kubernetes/1.19/client-go/
RUN go mod download RUN go mod download
# Copy only the production source code to avoid cache misses when editing other files # Copy only the production source code to avoid cache misses when editing other files
COPY kubernetes ./kubernetes COPY kubernetes ./kubernetes
COPY cmd ./cmd COPY cmd ./cmd
@ -38,16 +31,19 @@ COPY internal ./internal
COPY pkg ./pkg COPY pkg ./pkg
COPY tools ./tools COPY tools ./tools
COPY hack ./hack COPY hack ./hack
# Build the executable binary (CGO_ENABLED=0 means static linking) # Build the executable binary (CGO_ENABLED=0 means static linking)
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "$(hack/get-ldflags.sh)" -o out ./cmd/placeholder-name-server/... RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "$(hack/get-ldflags.sh)" -o out ./cmd/placeholder-name-server/...
FROM alpine:latest
# Install CA certs and some tools for debugging # Use a runtime image based on Debian slim
RUN apk --update --no-cache add ca-certificates bash curl FROM debian:10.5-slim
WORKDIR /root/
# Copy the binary from the build-env stage # Copy the binary from the build-env stage
COPY --from=build-env /work/out/placeholder-name-server placeholder-name-server COPY --from=build-env /work/out/placeholder-name-server /usr/local/bin/placeholder-name-server
# Document the port # Document the port
EXPOSE 443 EXPOSE 443
# Set the command
CMD ["./placeholder-name-server"] # Set the entrypoint
ENTRYPOINT ["/usr/local/bin/placeholder-name-server"]

View File

@ -59,8 +59,6 @@ spec:
image: #@ data.values.image_repo + ":" + data.values.image_tag image: #@ data.values.image_repo + ":" + data.values.image_tag
#@ end #@ end
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
command:
- ./placeholder-name-server
args: args:
- --config=/etc/config/placeholder-name.yaml - --config=/etc/config/placeholder-name.yaml
- --downward-api-path=/etc/podinfo - --downward-api-path=/etc/podinfo