VOL-1460: Docker builds now use common base image. Also Documentation Update.
Modified all docker files to use a base build that copies in vendor and
other common GOPATH items. Then each dependant Dockerfile
uses the base and only copies in golang source needed to build.
Also grab updated lock file and vendor items missing (from a dep ensure)
for build to work.
Change-Id: I6047847c2c186a24d1f223b1a4dfab39ab381a92
diff --git a/docker/Dockerfile.ro_core b/docker/Dockerfile.ro_core
index 0784f9a..f4bb80c 100644
--- a/docker/Dockerfile.ro_core
+++ b/docker/Dockerfile.ro_core
@@ -1,40 +1,26 @@
# -------------
# 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"]
-RUN ["mkdir", "-p", "$GOPATH/src", "$GOPATH/pkg", "$GOPATH/bin"]
-RUN ["mkdir", "-p", "$GOPATH/src/github.com/opencord/voltha-go"]
+FROM base AS build-env
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
+# Copy files.
+COPY ro_core ./ro_core
-# Build ro_core
-RUN cd ro_core && go build -o /src/ro_core
+# Build
+RUN cd ro_core && go build -o /build/ro_core
+
# -------------
# Image creation stage
-FROM alpine:3.8
+FROM alpine:3.9
# Set the working directory
WORKDIR /app
# Copy required files
-COPY --from=build-env /src/ro_core /app/
+COPY --from=build-env /build/ro_core /app/
+ENTRYPOINT ["/app/ro_core"]