# -------------
# Build stage

FROM golang:1.10-alpine AS build-env


# Install required packages
RUN apk add --no-cache wget git make build-base protobuf protobuf-dev curl

RUN curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh

RUN git clone https://github.com/googleapis/googleapis.git /usr/local/include/googleapis

# Prepare directory structure
RUN ["mkdir", "-p", "/src", "src/protos"]
RUN ["mkdir", "-p", "$GOPATH/src", "$GOPATH/pkg", "$GOPATH/bin"]
RUN ["mkdir", "-p", "$GOPATH/src/github.com/opencord/voltha/protos/go"]

# Install golang protobuf
RUN go get github.com/golang/protobuf/protoc-gen-go
RUN go get google.golang.org/genproto/googleapis/rpc/status
RUN go get google.golang.org/grpc/binarylog/grpc_binarylog_v1

# Copy files
ADD rw_core $GOPATH/src/github.com/opencord/voltha-go/rw_core
ADD common $GOPATH/src/github.com/opencord/voltha-go/common
ADD db $GOPATH/src/github.com/opencord/voltha-go/db
ADD kafka $GOPATH/src/github.com/opencord/voltha-go/kafka
ADD vendor $GOPATH/src/github.com/opencord/voltha-go/vendor
ADD afrouter $GOPATH/src/github.com/opencord/voltha-go/afrouter
ADD arouterd $GOPATH/src/github.com/opencord/voltha-go/arouterd
ADD Gopkg.lock $GOPATH/src/github.com/opencord/voltha-go
ADD Gopkg.toml $GOPATH/src/github.com/opencord/voltha-go


# Copy required proto files
# ... VOLTHA proos
ADD protos/*.proto /src/protos/
ADD protos/scripts/* /src/protos/
ADD afrouter/arouter.json /src

#
# Copy generated executables here
WORKDIR $GOPATH/src/github.com/opencord/voltha-go
#RUN $GOPATH/bin/dep ensure -add github.com/coreos/etcd

#RUN ls -ltrR /go/src/github.com/opencord/voltha-go

# Install golang protobuf
#RUN go get github.com/golang/protobuf/protoc-gen-go
#RUN go get google.golang.org/genproto/googleapis/rpc/status
#RUN go get google.golang.org/grpc/binarylog/grpc_binarylog_v1
RUN go install ./vendor/github.com/golang/protobuf/protoc-gen-go

# Compile protobuf files
RUN sh /src/protos/build_protos.sh /src/protos

# Build rw_core
RUN cd arouterd && go build -o /src/arouterd


# -------------
# Image creation stage

FROM alpine:3.6

# Set the working directory
WORKDIR /app

# Copy required files
COPY --from=build-env /src/arouterd /app/
