Advance version for Dockerfile base image
[ric-plt/appmgr.git] / Dockerfile
old mode 100644 (file)
new mode 100755 (executable)
index adc6a04..5b0bf95
@@ -15,7 +15,7 @@
 
 #----------------------------------------------------------
 
-FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu18-c-go:2-u18.04-nng AS appmgr-build
+FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu18-c-go:3-u18.04-nng AS appmgr-build
 
 RUN apt-get update -y && apt-get install -y jq
 
@@ -32,23 +32,38 @@ RUN wget -nv https://storage.googleapis.com/kubernetes-helm/helm-${HELMVERSION}-
 # Install kubectl from Docker Hub
 COPY --from=lachlanevenson/k8s-kubectl:v1.10.3 /usr/local/bin/kubectl /usr/local/bin/kubectl
 
-RUN mkdir -p /ws
-WORKDIR "/ws"
 ENV GOPATH="/go"
 
+# Swagger
+RUN mkdir -p /go/bin
+RUN cd /go/bin \
+    && wget --quiet https://github.com/go-swagger/go-swagger/releases/download/v0.19.0/swagger_linux_amd64 \
+    && mv swagger_linux_amd64 swagger \
+    && chmod +x swagger
+
+RUN mkdir -p /go/src/ws
+WORKDIR "/go/src/ws"
+
 # Module prepare (if go.mod/go.sum updated)
-COPY go.mod /ws
-COPY go.sum /ws
+COPY go.mod /go/src/ws
+COPY go.sum /go/src/ws
 RUN GO111MODULE=on go mod download
 
 # build and test
-COPY . /ws
+COPY . /go/src/ws
+
+# Generate Swagger code
+RUN /go/bin/swagger generate server -f api/appmgr_rest_api.yaml --name AppManager -t pkg/ --exclude-main
+
+COPY . /go/src/ws
 
-RUN make -C /ws go-build
+# Build the code
+RUN GO111MODULE=on GO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o /go/src/ws/cache/go/cmd/appmgr cmd/appmgr.go
 
-RUN make -C /ws go-test-fmt
+# Run unit tests
+RUN GO111MODULE=on GO_ENABLED=0 GOOS=linux go test -p 1 -cover ./pkg/cm/ ./pkg/helm/ ./pkg/resthooks/
 
-#RUN make -C /ws go-test
+RUN gofmt -l $(find cmd/ pkg/  -name '*.go' -not -name '*_test.go')
 
 CMD ["/bin/bash"]
 
@@ -70,12 +85,12 @@ COPY --from=appmgr-build /usr/local/bin/kubectl /usr/local/bin/kubectl
 RUN ldconfig
 
 #
-# xApp
+# xApp Manager
 #
 RUN mkdir -p /opt/xAppManager \
     && chmod -R 755 /opt/xAppManager
 
-COPY --from=appmgr-build /ws/cache/go/cmd/appmgr /opt/xAppManager/appmgr
+COPY --from=appmgr-build /go/src/ws/cache/go/cmd/appmgr /opt/xAppManager/appmgr
 
 WORKDIR /opt/xAppManager