blob: eba62e1c6f60fbf440ebb818f9eeb55eb8ba69bf [file] [log] [blame]
# -------------
# 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/