Utilize Docker caching to speed up image building

This rearranges the Dockerfile to COPY over the go module files for
downloading prior to building, linting, and testing. This will allow
developers to more quickly test their code via Docker given that their
dependencies change infrequently.

Change-Id: I3650fbd9ca18d453921d25a536e8b4cf60ce1b5e
This commit is contained in:
Ian Howell 2019-11-18 15:55:02 -06:00
parent ffcb533d39
commit e3ca393d9e

View File

@ -3,11 +3,13 @@ ARG RELEASE_IMAGE=scratch
FROM ${GO_IMAGE} as builder FROM ${GO_IMAGE} as builder
SHELL [ "/bin/bash", "-cex" ] SHELL [ "/bin/bash", "-cex" ]
ADD . /usr/src/airshipctl
WORKDIR /usr/src/airshipctl WORKDIR /usr/src/airshipctl
RUN make get-modules # Take advantage of caching for dependency acquisition
COPY go.mod go.sum /usr/src/airshipctl/
RUN go mod download
COPY . /usr/src/airshipctl/
ARG MAKE_TARGET=build ARG MAKE_TARGET=build
RUN make ${MAKE_TARGET} RUN make ${MAKE_TARGET}