FROM golang:1.14.2

ARG CARBON_RELAY_VERSION

ENV DOCKERIZE_VERSION v0.6.1
RUN \
	wget -O dockerize.tar.gz https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz && \
    md5sum dockerize.tar.gz && \
    [ "$(md5sum dockerize.tar.gz)" = "5c1b3d9a7d9341e23e0b8bdf2a288387  dockerize.tar.gz" ] && \
    tar -C /go/bin -xzvf dockerize.tar.gz && \
    rm dockerize.tar.gz

RUN go get github.com/golang/dep/cmd/dep

RUN \
	mkdir -p /go/src/github.com/grafana && \
	cd /go/src/github.com/grafana && \
	git clone https://github.com/grafana/carbon-relay-ng && \
	cd carbon-relay-ng && \
	git checkout -b temp-branch v${CARBON_RELAY_VERSION}

WORKDIR /go/src/github.com/grafana/carbon-relay-ng

# Dep is much slower than go get but it resolves a depdendency conflict
# that go get (with or without GO111MODULE) does not currently solve.
# If its speed becomes a problem we can consider packing in a Gopkg.lock and dep cache.
RUN dep ensure -v

RUN CGO_ENABLED=0 go install -ldflags "-X main.Version=${CARBON_RELAY_VERSION}" ./cmd/carbon-relay-ng


FROM alpine
RUN apk --update add --no-cache ca-certificates
RUN mkdir /var/spool/carbon-relay-ng
COPY --from=0 /go/bin/carbon-relay-ng /go/bin/dockerize /bin/
COPY carbon-relay-ng.tmpl.toml /conf/
COPY storage-schemas.conf /conf/
CMD ["/bin/dockerize", "-template", "/conf/carbon-relay-ng.tmpl.toml:/conf/carbon-relay-ng.toml", "/bin/carbon-relay-ng", "/conf/carbon-relay-ng.toml"]
