build: split docker build into two images (#9)

Update the docker build file to use two images - one for building, and one
for running/deployment. This helps reduce the size of the final image.
This commit is contained in:
Hector 2021-03-27 17:29:28 +00:00
parent 3de54b0b71
commit 3c4a8f5495

View File

@ -1,5 +1,5 @@
# Using golang:latest instead of alpine because of issues with sqlite3
FROM golang:latest
FROM golang:latest AS build
# Create build folder to compile tool
WORKDIR /build
@ -11,12 +11,14 @@ RUN ln -s /go/src/ /build/src
# Compile the tool using a Make command
RUN make build/docker
FROM debian:buster-slim
# Create main app folder to run from
WORKDIR /app
# Move compiled binary to app folder and delete build folder
RUN mv /build/src/exporter /app/fail2ban-prometheus-exporter
RUN rm -rf /build
# Copy compiled binary to release image
COPY --from=build /build/src/exporter /app/fail2ban-prometheus-exporter
# Copy init script into main app folder and set as entry point
COPY docker/run.sh /app/