blob: f76e31df45fe92e06c4f23e3bd4b6dc3bf494eb2 [file] [log] [blame]
# 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,mirror://mirrors.ubuntu.com/mirrors.txt,' /etc/apt/sources.list
#RUN sed -i -e 's,http://security.ubuntu.com/ubuntu,mirror://mirrors.ubuntu.com/mirrors.txt,' /etc/apt/sources.list
#RUN sed -i -e 's,http://archive.ubuntu.com/ubuntu,http://mirrors.nic.funet.fi/ubuntu,' /etc/apt/sources.list
#RUN sed -i -e 's,http://security.ubuntu.com/ubuntu,http://mirrors.nic.funet.fi/ubuntu,' /etc/apt/sources.list
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 \
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 echo "35.165.179.212 gerrit.oran-osc.org" >> /etc/hosts \
&& mkdir -p /opt/build \
&& cd /opt/build && git clone https://gerrit.oran-osc.org/r/log \
&& cd log/ ; ./autogen.sh ; ./configure ; make ; make install \
&& ldconfig
#----------------------------------------------------------
#
#----------------------------------------------------------
FROM ubuntubase as builder
ARG HELMVERSION
#
# 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
#
# xapp_manager codes
#
RUN mkdir -p /go/src/appmgr
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/appmgr
#
# build
#
RUN make -C /go/src/appmgr/build deps
RUN make -C /go/src/appmgr/build build
#----------------------------------------------------------
#
#----------------------------------------------------------
FROM builder as test_unit
WORKDIR "/go/src/appmgr"
CMD ["make","-C","build", "unit-test"]
#----------------------------------------------------------
#
#----------------------------------------------------------
FROM builder as test_sanity
WORKDIR "/go/src/appmgr"
CMD ["jq","-s",".", "rest_api/xapp_manager_rest_api.json"]
#----------------------------------------------------------
#
#----------------------------------------------------------
FROM ubuntu:16.04 as release
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/appmgr/build/appmgr /opt/xAppManager/appmgr
#COPY --from=builder /go/src/appmgr/config/appmgr.yaml /opt/etc/xAppManager/config-file.yaml
COPY build/docker-entrypoint.sh /opt/xAppManager/
WORKDIR /opt/xAppManager
ENTRYPOINT ["/opt/xAppManager/docker-entrypoint.sh"]