FROM golang:1.11.4

EXPOSE 8000 8000

WORKDIR /go/src/code.justin.tv/eventbus/dashboard

ENV PATH /go/src/code.justin.tv/eventbus/dashboard/_tools/bin:$PATH

# Setup NodeJS
RUN \
      wget -cq https://nodejs.org/dist/v12.20.1/node-v12.20.1-linux-x64.tar.gz && \
      sha256sum "node-v12.20.1-linux-x64.tar.gz" && \
      echo "c4d45bf46d4ef4b6a72384dfb0ab6c07aed5750bcd1c2fc9f29c0aaccc6a4363  node-v12.20.1-linux-x64.tar.gz" | sha256sum --check
RUN tar --strip-components 1 -C /usr/local -xf node-v12.20.1-linux-x64.tar.gz

# Setup Yarn
RUN npm install -g yarn@1.12.3

# Install retool 
RUN go get github.com/twitchtv/retool

# Add a few files that change rarely, to speed up builds
ADD package.json package.json
ADD tools.json tools.json
ADD .npmrc .npmrc
ADD yarn.lock yarn.lock

# Vendor golang tools
RUN retool sync && retool build

# Vendor JS packages
RUN yarn install

COPY . .

RUN go build -o dashboard ./cmd/server/

RUN yarn build-e2e

CMD ["./dashboard"]
