129 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
##-----------------------------------
 | 
						|
# BS Connector
 | 
						|
#------------------------------------
 | 
						|
ARG SCHEMA_PATH=schemas
 | 
						|
ARG XAPP_DIR=sample-xapp
 | 
						|
ARG CONNECTOR_DIR=xapp-sm-connector
 | 
						|
ARG STAGE_DIR=/home/${CONNECTOR_DIR}
 | 
						|
ARG DBAAS_SERVICE_HOST=10.0.2.12
 | 
						|
ARG DBAAS_SERVICE_PORT="6379"
 | 
						|
 | 
						|
#==================================================================================
 | 
						|
FROM ubuntu:18.04 as ricbuild
 | 
						|
 | 
						|
# to override repo base, pass in repo argument when running docker build:
 | 
						|
# docker build --build-arg REPOBASE=http://abc.def.org . ....
 | 
						|
ARG REPOBASE=https://gerrit.oran-osc.org/r
 | 
						|
ARG SCHEMA_FILE
 | 
						|
ARG SCHEMA_PATH
 | 
						|
ARG XAPP_DIR
 | 
						|
ARG CONNECTOR_DIR
 | 
						|
ARG STAGE_DIR
 | 
						|
 | 
						|
ARG MDC_VER=0.0.4-1
 | 
						|
ARG RMR_VER=4.0.5
 | 
						|
ARG RNIB_VER=1.0.0
 | 
						|
 | 
						|
ENV RMR_RTG_SVC="9999" \
 | 
						|
  RMR_SEED_RT="/home/${CONNECTOR_DIR}/init/routes.txt" \
 | 
						|
  LD_LIBRARY_PATH="/usr/local/lib:/usr/local/libexec" \
 | 
						|
  VERBOSE=0 \
 | 
						|
  CONFIG_FILE=/opt/ric/config/config-file.json \
 | 
						|
  DBAAS_SERVICE_HOST=${DBAAS_SERVICE_HOST} \
 | 
						|
  DBAAS_SERVICE_PORT=${DBAAS_SERVICE_PORT}
 | 
						|
 | 
						|
COPY ${CONNECTOR_DIR} ${STAGE_DIR}
 | 
						|
COPY ${XAPP_DIR} /home/${XAPP_DIR}
 | 
						|
 | 
						|
WORKDIR ${STAGE_DIR}
 | 
						|
 | 
						|
# Install necessary packages
 | 
						|
RUN apt-get update  \
 | 
						|
  && apt-get install -y \
 | 
						|
    cmake \
 | 
						|
    git \
 | 
						|
    build-essential \
 | 
						|
    automake \
 | 
						|
    autoconf-archive \
 | 
						|
    autoconf \
 | 
						|
    pkg-config \
 | 
						|
    gawk \
 | 
						|
    libtool \
 | 
						|
    wget \
 | 
						|
    zlib1g-dev \
 | 
						|
    libffi-dev \
 | 
						|
    libcurl4-openssl-dev \
 | 
						|
    vim \
 | 
						|
    cpputest \
 | 
						|
    libboost-all-dev \
 | 
						|
    libhiredis-dev \
 | 
						|
  && apt-get remove -y --purge python* \
 | 
						|
  && apt-get install -y \
 | 
						|
    python3 \
 | 
						|
    python3-pip \
 | 
						|
    gdb
 | 
						|
  # Install mdclog using debian package hosted at packagecloud.io
 | 
						|
RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/mdclog_${MDC_VER}_amd64.deb/download.deb \
 | 
						|
  && wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/mdclog-dev_${MDC_VER}_amd64.deb/download.deb \
 | 
						|
  && dpkg -i mdclog_${MDC_VER}_amd64.deb \
 | 
						|
  && dpkg -i mdclog-dev_${MDC_VER}_amd64.deb \
 | 
						|
  && rm mdclog_${MDC_VER}_amd64.deb mdclog-dev_${MDC_VER}_amd64.deb
 | 
						|
# Install RMR using debian package hosted at packagecloud.io
 | 
						|
RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rmr_${RMR_VER}_amd64.deb/download.deb \
 | 
						|
  && wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rmr-dev_${RMR_VER}_amd64.deb/download.deb \
 | 
						|
  && dpkg -i rmr_${RMR_VER}_amd64.deb \
 | 
						|
  && dpkg -i rmr-dev_${RMR_VER}_amd64.deb \
 | 
						|
  && rm rmr_${RMR_VER}_amd64.deb rmr-dev_${RMR_VER}_amd64.deb
 | 
						|
# Install RNIB libraries
 | 
						|
RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rnib_${RNIB_VER}_all.deb/download.deb \
 | 
						|
  && dpkg -i rnib_${RNIB_VER}_all.deb \
 | 
						|
  && rm rnib_${RNIB_VER}_all.deb
 | 
						|
# Install dbaas
 | 
						|
RUN cd ${STAGE_DIR} \
 | 
						|
  && git clone https://gerrit.o-ran-sc.org/r/ric-plt/dbaas \
 | 
						|
  && cd dbaas/redismodule \
 | 
						|
  && ./autogen.sh \
 | 
						|
  && ./configure \
 | 
						|
  && make -j ${nproc} all \
 | 
						|
  && make install \
 | 
						|
  && rm -Rf ${STAGE_DIR}/dbaas
 | 
						|
# Install sdl
 | 
						|
RUN cd ${STAGE_DIR} \
 | 
						|
  && git clone https://gerrit.o-ran-sc.org/r/ric-plt/sdl \
 | 
						|
  && cd sdl \
 | 
						|
  && ./autogen.sh \
 | 
						|
  && ./configure \
 | 
						|
  && make -j ${nproc} all \
 | 
						|
  && make install \
 | 
						|
  && rm -Rf ${STAGE_DIR}/sdl
 | 
						|
# Install rapidjson
 | 
						|
RUN cd ${STAGE_DIR} \
 | 
						|
  && git clone https://github.com/Tencent/rapidjson \
 | 
						|
  && cd rapidjson \
 | 
						|
  && mkdir build \
 | 
						|
  && cd build \
 | 
						|
  && cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. \
 | 
						|
  && make -j ${nproc} \
 | 
						|
  && make install \
 | 
						|
  && cd ${STAGE_DIR} \
 | 
						|
  && rm -rf rapidjson
 | 
						|
##-----------------------------------
 | 
						|
# Now install the program
 | 
						|
#------------------------------------
 | 
						|
# build connector
 | 
						|
RUN export CPATH=$CPATH:/usr/local/include \
 | 
						|
  && cd src \
 | 
						|
  && make -j ${nproc} \
 | 
						|
  && make install \
 | 
						|
  && ldconfig \
 | 
						|
  && sysctl -w net.ipv6.conf.lo.disable_ipv6=1 \
 | 
						|
###-----------------------------------
 | 
						|
## DRL Agent
 | 
						|
##------------------------------------
 | 
						|
## install packages and pip requirements
 | 
						|
#  && pip3 --no-cache-dir install -U pip \
 | 
						|
#  && pip3 --no-cache-dir install -r /home/${XAPP_DIR}/requirements.txt \
 | 
						|
  && apt-get autoremove -y \
 | 
						|
  && apt-get clean \
 | 
						|
  && rm -rf /var/lib/apt/lists/*
 |