minitor-go/Dockerfile.multi-stage
Ian Fijolek f463ef27b7
Some checks failed
continuous-integration/drone/push Build is failing
Update Dockerfiles to make this version runnable
Should now have pairity in terms of system utilities and scripts for
checking services
2019-11-22 12:58:26 -08:00

42 lines
822 B
Docker

ARG REPO=library
FROM golang:1.12-alpine AS builder
RUN apk add --no-cache git
RUN mkdir /app
WORKDIR /app
COPY ./go.mod ./go.sum /app/
RUN go mod download
COPY ./*.go /app/
ARG ARCH=amd64
ARG VERSION=dev
ENV CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH}
RUN go build -ldflags "-X main.version=${VERSION}" -a -installsuffix nocgo -o minitor .
FROM ${REPO}/alpine:latest
RUN mkdir /app
WORKDIR /app/
# Copy minitor in
COPY --from=builder /app/minitor .
# Add common checking tools
RUN apk --no-cache add bash==4.4.19-r1 curl==7.64.0-r3 jq==1.6-r0
# Add minitor user for running as non-root
RUN addgroup -S minitor && adduser -S minitor -G minitor
# Copy scripts
COPY ./scripts /app/scripts
RUN chmod -R 755 /app/scripts
# Drop to non-root user
USER minitor
ENTRYPOINT [ "./minitor" ]
# vim: set filetype=dockerfile: