X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=docker%2FDockerfile-local;h=f68b3798e1d9b0789b930d68f11ccd708a109a09;hb=a6eff0a68fb60108545b81215f9551097f4bfd40;hp=3eaa281f4e77aa470a6cb98d585b5bdecf485532;hpb=05a8b7bc29197345f9718796c110d6cf3c2ad176;p=osm%2FRO.git diff --git a/docker/Dockerfile-local b/docker/Dockerfile-local index 3eaa281f..f68b3798 100644 --- a/docker/Dockerfile-local +++ b/docker/Dockerfile-local @@ -1,50 +1,71 @@ from ubuntu:xenial -MAINTAINER Gennadiy Dubina - -# script uses it -ENV USER=root - -#avoid extra information from packages -RUN echo 'path-exclude /usr/share/doc/*\n\ -path-include /usr/share/doc/*/copyright\n\ -path-exclude /usr/share/man/*\n\ -path-exclude /usr/share/groff/*\n\ -path-exclude /usr/share/info/*\n\ -path-exclude /usr/share/lintian/*\n\ -path-exclude /usr/share/linda/*\n'\ -> /etc/dpkg/dpkg.cfg.d/01_nodoc && \ - echo 'APT::Install-Recommends "false";\n\ -APT::AutoRemove::RecommendsImportant "false";\n\ -APT::AutoRemove::SuggestsImportant "false";\n'\ -> /etc/apt/apt.conf.d/99_norecommends - -#generate lsb_release stub -RUN echo 'if [ "$1" == "-is" ]; then echo "Ubuntu"; else if [ "$1" == "-rs" ]; then echo "16.04"; fi fi' > /usr/bin/lsb_release && chmod +x /usr/bin/lsb_release - -COPY . /usr/local/src/openmano - -RUN apt update && \ - DEBIAN_FRONTEND=noninteractive apt install -fqy software-properties-common make gcc git python python-dev python-pip sudo wget && \ - pip install --upgrade pip && \ - cd /usr/local/src/openmano && \ - make build && \ - cd build && \ - ./scripts/install-openmano.sh -q --noclone --no-db && \ - cd / && \ - rm -rf /usr/local/src/openmano && \ - rm -rf /usr/include/* && \ - rm -rf /root/.cache && \ - apt purge -y make gcc git curl wget python-dev python-pip && \ - apt autoremove -y && \ - apt clean && \ - rm -rf /var/lib/apt/lists/* - -COPY docker/scripts/ /opt/openmano-docker - -VOLUME /opt/openmano/logs +LABEL authors="Gennadiy Dubina, Alfonso Tierno, Gerardo Garcia" + +COPY . /root/RO + +COPY docker/scripts/ /bin/RO + +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install software-properties-common && \ + apt-get update && \ + DEBIAN_FRONTEND=noninteractive add-apt-repository -y cloud-archive:ocata && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install git make python python-pip debhelper && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install wget tox && \ + DEBIAN_FRONTEND=noninteractive pip install -U pip && \ + DEBIAN_FRONTEND=noninteractive pip install -U setuptools setuptools-version-command stdeb && \ + DEBIAN_FRONTEND=noninteractive pip install -U pyang pyangbind && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install python-yaml python-netaddr python-boto && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install software-properties-common && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install python-novaclient python-keystoneclient python-glanceclient python-cinderclient python-neutronclient && \ + DEBIAN_FRONTEND=noninteractive pip install -U progressbar pyvmomi pyvcloud==19.1.1 && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install python-argcomplete python-bottle python-cffi python-packaging python-paramiko python-pkgconfig libmysqlclient-dev libssl-dev libffi-dev python-mysqldb && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install python-logutils python-openstackclient python-openstacksdk && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install python-bitarray && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-client && \ + mkdir -p /root/RO && \ + make -C /root/RO clean all BRANCH=master && \ + dpkg -i /root/RO/IM/deb_dist/python-pyang_*.deb && \ + dpkg -i /root/RO/IM/deb_dist/python-pyangbind_*.deb && \ + dpkg -i /root/RO/IM/deb_dist/python-osm-im*.deb && \ + dpkg -i /root/RO/openvim/.build/python-lib-osm-openvim*.deb && \ + dpkg -i /root/RO/.build/python-osm-ro*.deb && \ + rm -rf /root/.cache && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /root/RO + +VOLUME /var/log/osm + EXPOSE 9090 -env DB_USER='' DB_PSWD='' DB_HOST='' DB_PORT=3306 DB_NAME=mano_db +# Two mysql databases are needed (DB and DB_OVIM). Can be hosted on same or separated containers +# These ENV must be provided +# RO_DB_HOST: host of the main +# RO_DB_OVIM_HOST: ... if empty RO_DB_HOST is assumed +# RO_DB_ROOT_PASSWORD: this has to be provided first time for creating database. It will create and init only if empty! +# RO_DB_OVIM_ROOT_PASSWORD: ... if empty RO_DB_ROOT_PASSWORD is assumed +# RO_DB_USER: default value 'mano' +# RO_DB_OVIM_USER: default value 'mano' +# RO_DB_PASSWORD: default value 'manopw' +# RO_DB_OVIM_PASSWORD: default value 'manopw' +# RO_DB_PORT: default value '3306' +# RO_DB_OVIM_PORT: default value '3306' +# RO_DB_NAME: default value 'mano_db' +# RO_DB_OVIM_NAME: default value 'mano_vim_db' + +ENV RO_DB_HOST="" \ + RO_DB_OVIM_HOST="" \ + RO_DB_ROOT_PASSWORD="" \ + RO_DB_OVIM_ROOT_PASSWORD="" \ + RO_DB_USER=mano \ + RO_DB_OVIM_USER=mano \ + RO_DB_PASSWORD=manopw \ + RO_DB_OVIM_PASSWORD=manopw \ + RO_DB_PORT=3306 \ + RO_DB_OVIM_PORT=3306 \ + RO_DB_NAME=mano_db \ + RO_DB_OVIM_NAME=mano_vim_db + +CMD /bin/RO/start.sh -CMD /opt/openmano-docker/start.sh