# ---------------------- BUILD IMAGE ---------------------------------------
FROM golang:1-alpine as builder

ENV GOPATH=/opt/go

RUN \
  apk update  --no-cache && \
  apk upgrade --no-cache && \
  apk add g++ git make musl-dev cairo-dev

# Install go-carbon

WORKDIR ${GOPATH}

ARG version="v0.15.6"

RUN \
  export PATH="${PATH}:${GOPATH}/bin" && \
  mkdir -p /var/log/go-carbon && \
  git clone -b ${version} --depth 1 https://github.com/lomik/go-carbon.git

WORKDIR ${GOPATH}/go-carbon

RUN \
  export PATH="${PATH}:${GOPATH}/bin" && \
  make && \
  mv go-carbon /tmp/go-carbon

# ------------------------------ RUN IMAGE --------------------------------------
FROM alpine:latest

ENV TZ='America/Los_Angeles'

COPY --from=builder /tmp/go-carbon /usr/bin/go-carbon

COPY conf/ /

RUN \
  apk update --no-cache && \
  apk upgrade --no-cache && \
  apk add    --no-cache --virtual .build-deps tzdata shadow && \
  cp "/usr/share/zoneinfo/${TZ}" /etc/localtime && \
  echo "${TZ}" > /etc/timezone && \
  /usr/sbin/useradd --system -U -s /bin/false -c "User for Graphite daemon" carbon && \
  rm -rf /tmp/* /var/cache/apk/*

WORKDIR /

VOLUME ["/etc/go-carbon"]

ENV HOME /root

EXPOSE 2003 2003/udp 2004 8080

CMD ["/run.sh"]
