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

FROM golang:1.10.7-alpine AS build-env

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

# Install protobuf requirements
RUN git clone https://github.com/googleapis/googleapis.git /usr/local/include/googleapis
RUN go get google.golang.org/genproto/googleapis/api/annotations

# 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"]

WORKDIR $GOPATH/src/github.com/opencord/voltha-go

# Copy files
ADD ro_core ./ro_core
ADD common ./common
ADD db ./db
ADD kafka ./kafka
ADD vendor ./vendor

# Install the protoc-gen-go
RUN go install ./vendor/github.com/golang/protobuf/protoc-gen-go

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

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

# Build ro_core
RUN cd ro_core && go build -o /src/ro_core

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

FROM alpine:3.8

# Set the working directory
WORKDIR /app

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

