mirror of https://github.com/status-im/consul.git
33 lines
823 B
Docker
33 lines
823 B
Docker
ARG CONSUL_BUILD_IMAGE
|
|
FROM ${CONSUL_BUILD_IMAGE}:latest as builder
|
|
# FROM golang:latest as builder
|
|
ARG GIT_COMMIT
|
|
ARG GIT_DIRTY
|
|
ARG GIT_DESCRIBE
|
|
# WORKDIR /go/src/github.com/hashicorp/consul
|
|
ENV CONSUL_DEV=1
|
|
ENV COLORIZE=0
|
|
|
|
# Cache modules separately from more frequently edited source files.
|
|
#
|
|
# The trick is taken from [https://medium.com/@pliutau/docker-and-go-modules-4265894f9fc#6622]
|
|
#
|
|
# We copy the modules files in first since they are less likely to change frequently
|
|
# and the population of the go mod cache will be invalidated less frequently.
|
|
COPY go.mod .
|
|
COPY go.sum .
|
|
RUN mkdir -p api sdk
|
|
COPY api/go.mod api
|
|
COPY api/go.sum api
|
|
COPY sdk/go.mod sdk
|
|
COPY sdk/go.sum sdk
|
|
RUN go mod download
|
|
|
|
# Add the rest of the code.
|
|
ADD . /consul/
|
|
RUN make dev
|
|
|
|
FROM consul:latest
|
|
|
|
COPY --from=builder /go/bin/consul /bin
|