X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=docker%2FDockerfile;fp=docker%2FDockerfile;h=327703712abac84a34c0b9c0c3d3218639495928;hb=193caf9d7e08b84a0b9c1f0352924a7efd77e77c;hp=0000000000000000000000000000000000000000;hpb=cb4b2ad8e2f99eadea145e480da556c58b0a47b5;p=ric-plt%2Fappmgr.git diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100755 index 0000000..3277037 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,171 @@ +# Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2019 Nokia. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#---------------------------------------------------------- +# +#---------------------------------------------------------- +FROM ubuntu:16.04 as ubuntubase + +RUN apt-get update -y && \ + apt-get install -y wget + + +RUN sed -i -e "s,http://archive.ubuntu.com/ubuntu,$(wget -qO - mirrors.ubuntu.com/mirrors.txt | head -1)," /etc/apt/sources.list +RUN sed -i -e "s,http://security.ubuntu.com/ubuntu,$(wget -qO - mirrors.ubuntu.com/mirrors.txt | head -1)," /etc/apt/sources.list + +# +# packages +# +RUN apt-get update -y && \ + apt-get upgrade -y && \ + apt-get install -y \ + build-essential \ + apt-utils \ + cmake \ + make \ + autoconf \ + autoconf-archive \ + gawk \ + libtool \ + automake \ + pkg-config \ + sudo \ + wget \ + nano \ + git \ + jq + + +# +# go +# +RUN wget https://dl.google.com/go/go1.12.linux-amd64.tar.gz && \ + tar -C /usr/local -xvf ./go1.12.linux-amd64.tar.gz + +ENV PATH="/usr/local/go/bin:${PATH}" + +# +# rancodev libs +# +RUN mkdir -p /opt/build \ + && cd /opt/build && git clone https://gerrit.oran-osc.org/r/com/log \ + && cd log/ ; ./autogen.sh ; ./configure ; make ; make install \ + && ldconfig + +#---------------------------------------------------------- +# +#---------------------------------------------------------- +FROM ubuntubase as builder + +ARG PACKAGEURL=gerrit.oran-osc.org/r/ric-plt/appmgr +ARG HELMVERSION=v2.13.0-rc.1 + +# +# helm +# +RUN wget https://storage.googleapis.com/kubernetes-helm/helm-${HELMVERSION}-linux-amd64.tar.gz \ + && tar -zxvf helm-${HELMVERSION}-linux-amd64.tar.gz \ + && cp linux-amd64/helm /usr/bin/helm \ + && rm -rf helm-${HELMVERSION}-linux-amd64.tar.gz \ + && rm -rf linux-amd64 + + +# +# appmgr codes +# +RUN mkdir -p /go/src/${PACKAGEURL} +ENV GOPATH="/go" + +# +# Speed up things by generating layer with needed go packages +# +RUN go get github.com/gorilla/mux \ + && go get github.com/spf13/viper \ + && go get github.com/gorilla/mux \ + && go get github.com/orcaman/concurrent-map \ + && go get github.com/segmentio/ksuid \ + && go get gopkg.in/yaml.v2 + + +COPY . /go/src/${PACKAGEURL} + + +# +# build +# +RUN make -C /go/src/${PACKAGEURL} build + + +#---------------------------------------------------------- +# +#---------------------------------------------------------- +FROM builder as test_unit +ARG PACKAGEURL=gerrit.oran-osc.org/r/ric-plt/appmgr +WORKDIR "/go/src/${PACKAGEURL}" +CMD ["make","test"] + + +#---------------------------------------------------------- +# +#---------------------------------------------------------- +FROM builder as test_fmt +ARG PACKAGEURL=gerrit.oran-osc.org/r/ric-plt/appmgr +WORKDIR "/go/src/${PACKAGEURL}" +CMD ["make","test-fmt"] + +#---------------------------------------------------------- +# +#---------------------------------------------------------- +FROM builder as test_sanity +ARG PACKAGEURL=gerrit.oran-osc.org/r/ric-plt/appmgr +WORKDIR "/go/src/${PACKAGEURL}" +CMD ["jq","-s",".", "api/appmgr_rest_api.json"] + + +#---------------------------------------------------------- +# +#---------------------------------------------------------- +FROM ubuntu:16.04 as release +ARG PACKAGEURL=gerrit.oran-osc.org/r/ric-plt/appmgr + +RUN apt-get update -y \ + && apt-get install -y sudo openssl ca-certificates ca-cacert \ + && apt-get clean + + +# +# libraries and helm +# +COPY --from=builder /usr/local/include/ /usr/local/include/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ +COPY --from=builder /usr/bin/helm /usr/bin/helm + +RUN ldconfig + +# +# xApp +# +RUN mkdir -p /opt/xAppManager \ + && chmod -R 755 /opt/xAppManager + +COPY --from=builder /go/src/${PACKAGEURL}/build/appmgr /opt/xAppManager/appmgr +#COPY --from=builder /go/src/${PACKAGEURL}/config/appmgr.yaml /opt/etc/xAppManager/config-file.yaml + + +COPY docker/docker-entrypoint.sh /opt/xAppManager/ + +WORKDIR /opt/xAppManager + +ENTRYPOINT ["/opt/xAppManager/docker-entrypoint.sh"]