diff --git a/docker/Dockerfile-local b/docker/Dockerfile-local
index 3eaa281..08e3f23 100644
--- a/docker/Dockerfile-local
+++ b/docker/Dockerfile-local
@@ -1,9 +1,6 @@
 from ubuntu:xenial
 
-MAINTAINER Gennadiy Dubina <gennadiy.dubina@dataat.com>
-
-# script uses it
-ENV USER=root
+MAINTAINER Gennadiy Dubina <gennadiy.dubina@dataat.com>; Alfonso Tierno <alfonso.tiernosepulveda@telefoncia.com>
 
 #avoid extra information from packages
 RUN echo 'path-exclude /usr/share/doc/*\n\
@@ -19,32 +16,43 @@
 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 && apt install -y curl mysql-client software-properties-common \
+  && add-apt-repository -y "deb http://osm-download.etsi.org/repository/osm/debian/ReleaseTHREE stable SO UI RO IM osmclient openvim" \
+  && curl "http://osm-download.etsi.org/repository/osm/debian/ReleaseTHREE/OSM%20ETSI%20Release%20Key.gpg" | apt-key add - \
+  && apt update \
+  && apt install -y python-osm-ro \
+  && rm -rf /var/lib/apt/lists/* \
+  && mkdir -p /bin/RO
 
-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
+COPY docker/scripts/ /bin/RO
 
 VOLUME /opt/openmano/logs
+
 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
+ENV RO_DB_HOST=""
+ENV RO_DB_OVIM_HOST=""
+    # if empty RO_DB_HOST is assumed
 
-CMD /opt/openmano-docker/start.sh
+# These ENV should be provided first time for creating database. It will create and init only if empty!
+ENV RO_DB_ROOT_PASSWORD=""
+ENV RO_DB_OVIM_ROOT_PASSWORD=""
+    # if empty RO_DB_ROOT_PASSWORD is assumed
+
+# These ENV can be provided, but default values are ok
+ENV RO_DB_USER=mano
+ENV RO_DB_OVIM_USER=mano
+ENV RO_DB_PASSWORD=manopw
+ENV RO_DB_OVIM_PASSWORD=manopw
+ENV RO_DB_PORT=3306
+ENV RO_DB_OVIM_PORT=3306
+ENV RO_DB_NAME=mano_db
+ENV RO_DB_OVIM_NAME=mano_vim_db
+
+
+CMD /bin/RO/start.sh
+
diff --git a/docker/openmano-compose-3c.yml b/docker/openmano-compose-3c.yml
new file mode 100644
index 0000000..cd9a12f
--- /dev/null
+++ b/docker/openmano-compose-3c.yml
@@ -0,0 +1,46 @@
+version: '3'
+services:
+  osm-ro-db:
+    image: mysql
+    container_name: osm-ro-db
+    restart: always
+    environment:
+      - MYSQL_RANDOM_ROOT_PASSWORD=true
+      - MYSQL_DATABASE=mano_db
+      - MYSQL_USER=mano
+      - MYSQL_PASSWORD=manopw
+  osm-ro-ovim-db:
+    image: mysql
+    container_name: osm-ro-ovim-db
+    restart: always
+    environment:
+      - MYSQL_RANDOM_ROOT_PASSWORD=true
+      - MYSQL_DATABASE=mano_vim_db
+      - MYSQL_USER=mano
+      - MYSQL_PASSWORD=manopw
+  osm-ro:
+    build:
+      context: ../
+      dockerfile: docker/Dockerfile-local
+    image: osm/ro
+    container_name: osm-ro
+    restart: always
+    environment:
+      - RO_DB_USER=mano
+      - RO_DB_PASSWORD=manopw
+      - RO_DB_NAME=mano_db
+      - RO_DB_HOST=osm-ro-db
+      - RO_DB_OVIM_USER=mano
+      - RO_DB_OVIM_PASSWORD=manopw
+      - RO_DB_OVIM_NAME=mano_vim_db
+      - RO_DB_OVIM_HOST=osm-ro-ovim-db
+    ports:
+      - "9090:9090"
+    volumes:
+      - /var/log/osm/openmano/logs:/var/log/osm/openmano/logs
+    depends_on:
+      - osm-ro-db
+      - osm-ro-ovim-db
+    links:
+      - osm-ro-db
+      - osm-ro-ovim-db
\ No newline at end of file
diff --git a/docker/openmano-compose.yml b/docker/openmano-compose.yml
index 253e957..d83b72d 100644
--- a/docker/openmano-compose.yml
+++ b/docker/openmano-compose.yml
@@ -5,10 +5,7 @@
     container_name: osm-ro-db
     restart: always
     environment:
-      - MYSQL_RANDOM_ROOT_PASSWORD=true
-      - MYSQL_DATABASE=mano_db
-      - MYSQL_USER=mano
-      - MYSQL_PASSWORD=manopw
+      - MYSQL_ROOT_PASSWORD=osm4u
   osm-ro:
     build:
       context: ../
@@ -17,10 +14,8 @@
     container_name: osm-ro
     restart: always
     environment:
-      - DB_USER=mano
-      - DB_PSWD=manopw
-      - DB_NAME=mano_db
-      - DB_HOST=osm-ro-db    
+      - RO_DB_ROOT_PASSWORD=osm4u
+      - DB_HOST=osm-ro-db
     ports:
       - "9090:9090"
     volumes:
diff --git a/docker/scripts/configure.sh b/docker/scripts/configure.sh
deleted file mode 100755
index da7cbba..0000000
--- a/docker/scripts/configure.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-#Database parameters
-#db_host:   localhost
-#db_user:   mano
-#db_passwd: manopw
-#db_name:   mano_db
-
-sed -i "s/^db_host:.*/db_host: $DB_HOST/" /opt/openmano/openmanod.cfg
-sed -i "s/^db_user:.*/db_user: $DB_USER/" /opt/openmano/openmanod.cfg
-sed -i "s/^db_passwd:.*/db_passwd: $DB_PSWD/" /opt/openmano/openmanod.cfg
-sed -i "s/^db_name:.*/db_name: $DB_NAME/" /opt/openmano/openmanod.cfg
\ No newline at end of file
diff --git a/docker/scripts/start.sh b/docker/scripts/start.sh
index 3d70c3f..486f3a0 100755
--- a/docker/scripts/start.sh
+++ b/docker/scripts/start.sh
@@ -1,5 +1,9 @@
 #!/bin/bash
 
+
+[ -z "$RO_DB_OVIM_HOST" ] && export RO_DB_OVIM_HOST="$RO_DB_HOST"
+[ -z "$RO_DB_OVIM_ROOT_PASSWORD" ] && export RO_DB_OVIM_ROOT_PASSWORD="$RO_DB_ROOT_PASSWORD"
+
 function is_db_created() {
     db_host=$1
     db_port=$2
@@ -24,23 +28,101 @@
     return 1
 }
 
+function configure(){
+    #Database parameters
+    #db_host:   localhost
+    #db_user:   mano
+    #db_passwd: manopw
+    #db_name:   mano_db
+    # Database ovim parameters
+    #db_ovim_host:   localhost          # by default localhost
+    #db_ovim_user:   mano               # DB user
+    #db_ovim_passwd: manopw             # DB password
+    #db_ovim_name:   mano_vim_db        # Name of the OVIM MANO DB
+
+
+    sed -i "s/^db_host:.*/db_host: $RO_DB_HOST/" /etc/osm/openmanod.cfg || return 1
+    sed -i "s/^db_user:.*/db_user: $RO_DB_USER/" /etc/osm/openmanod.cfg || return 1
+    sed -i "s/^db_passwd:.*/db_passwd: $RO_DB_PASSWORD/" /etc/osm/openmanod.cfg || return 1
+    sed -i "s/^db_name:.*/db_name: $RO_DB_NAME/" /etc/osm/openmanod.cfg || return 1
+    sed -i "s/^db_ovim_host:.*/db_ovim_host: $RO_DB_OVIM_HOST/" /etc/osm/openmanod.cfg || return 1
+    sed -i "s/^db_ovim_user:.*/db_ovim_user: $RO_DB_OVIM_USER/" /etc/osm/openmanod.cfg || return 1
+    sed -i "s/^db_ovim_passwd:.*/db_ovim_passwd: $RO_DB_OVIM_PASSWORD/" /etc/osm/openmanod.cfg || return 1
+    sed -i "s/^db_ovim_name:.*/db_ovim_name: $RO_DB_OVIM_NAME/" /etc/osm/openmanod.cfg || return 1
+    return 0
+}
+
+max_attempts=120
+function wait_db(){
+    db_host=$1
+    db_port=$2
+    attempt=0
+    echo "Wait until $max_attempts seconds for MySQL mano Server ${db_host}:${db_port} "
+    while ! mysqladmin ping -h"$db_host" -P"$db_port" --silent; do
+        #wait 120 sec
+        if [ $attempt -ge $max_attempts ]; then
+            echo
+            echo "Can not connect to database ${db_host}:${db_port} during $max_attempts sec"
+            return 1
+        fi
+        attempt=$[$attempt+1]
+        echo -n "."
+        sleep 1
+    done
+    return 0
+}
+
+
 echo "1/4 Apply config"
-/opt/openmano-docker/configure.sh
-[ $? -ne 0 ] && exit 1
-echo "2/4 Wait for db"
+configure || exit 1
 
-/opt/openmano-docker/wait_db.sh
-[ $? -ne 0 ] && exit 1
 
-echo "3/4 Init database" && \
-is_db_created "$DB_HOST" "$DB_PORT" "$DB_USER" "$DB_PSWD" "$DB_NAME"
-if [ $? -ne 0 ]; then
-    /opt/openmano/database_utils/init_mano_db.sh -u $DB_USER -p $DB_PSWD -h $DB_HOST -P $DB_PORT -d $DB_NAME
-    [ $? -ne 0 ] && exit 1
+echo "2/4 Wait for db up"
+wait_db "$RO_DB_HOST" "$RO_DB_PORT" || exit 1
+[ "$RO_DB_OVIM_HOST" = "$RO_DB_HOST" ] ||  wait_db "$RO_DB_OVIM_HOST" "$RO_DB_OVIM_PORT" || exit 1
+
+
+echo "3/4 Init database"
+RO_PATH=`python -c 'import osm_ro; print(osm_ro.__path__[0])'`
+echo "RO_PATH: $RO_PATH"
+if ! is_db_created "$RO_DB_HOST" "$RO_DB_PORT" "$RO_DB_USER" "$RO_DB_PASSWORD" "$RO_DB_NAME"
+then
+    if [ -n "$RO_DB_ROOT_PASSWORD" ] ; then
+        mysqladmin -h"$RO_DB_HOST" -uroot -p"$RO_DB_ROOT_PASSWORD" create "$RO_DB_NAME"
+        echo "CREATE USER '${RO_DB_USER}'@'%' IDENTIFIED BY '${RO_DB_PASSWORD}';" |
+            mysql -h"$RO_DB_HOST" -uroot -p"$RO_DB_ROOT_PASSWORD" || echo "user ${RO_DB_USER} already created?"
+        echo "GRANT ALL PRIVILEGES ON ${RO_DB_NAME}.* TO '${RO_DB_USER}'@'%';" |
+            mysql -h"$RO_DB_HOST" -uroot -p"$RO_DB_ROOT_PASSWORD"  || echo "user ${RO_DB_USER} already granted?"
+    fi
+    ${RO_PATH}/database_utils/init_mano_db.sh  -u "$RO_DB_USER" -p "$RO_DB_PASSWORD" -h "$RO_DB_HOST" \
+        -P "${RO_DB_PORT}" -d "${RO_DB_NAME}" || exit 1
 else
     echo "    migrage database version"
-    /opt/openmano/database_utils/migrate_mano_db.sh -u $DB_USER -p $DB_PSWD -h $DB_HOST -P $DB_PORT -d $DB_NAME
+    ${RO_PATH}/database_utils/migrate_mano_db.sh -u "$RO_DB_USER" -p "$RO_DB_PASSWORD" -h "$RO_DB_HOST" \
+        -P "$RO_DB_PORT" -d "$RO_DB_NAME"
 fi
 
+OVIM_PATH=`python -c 'import lib_osm_openvim; print(lib_osm_openvim.__path__[0])'`
+echo "OVIM_PATH: $OVIM_PATH"
+if ! is_db_created "$RO_DB_OVIM_HOST" "$RO_DB_OVIM_PORT" "$RO_DB_OVIM_USER" "$RO_DB_OVIM_PASSWORD" "$RO_DB_OVIM_NAME"
+then
+    if [ -n "$RO_DB_OVIM_ROOT_PASSWORD" ] ; then
+        mysqladmin -h"$RO_DB_OVIM_HOST" -uroot -p"$RO_DB_OVIM_ROOT_PASSWORD" create "$RO_DB_OVIM_NAME"
+        echo "CREATE USER '${RO_DB_OVIM_USER}'@'%' IDENTIFIED BY '${RO_DB_OVIM_PASSWORD}';" |
+            mysql -h"$RO_DB_OVIM_HOST" -uroot -p"$RO_DB_OVIM_ROOT_PASSWORD" ||
+            echo "user ${RO_DB_OVIM_USER} already created?"
+        echo "GRANT ALL PRIVILEGES ON ${RO_DB_OVIM_NAME}.* TO '${RO_DB_OVIM_USER}'@'%';" |
+            mysql -h"$RO_DB_OVIM_HOST" -uroot -p"$RO_DB_OVIM_ROOT_PASSWORD"  ||
+            echo "user ${RO_DB_OVIM_USER} already granted?"
+    fi
+    ${OVIM_PATH}/database_utils/init_vim_db.sh  -u "$RO_DB_OVIM_USER" -p "$RO_DB_OVIM_PASSWORD" -h "$RO_DB_OVIM_HOST" \
+        -P "${RO_DB_OVIM_PORT}" -d "${RO_DB_OVIM_NAME}" || exit 1
+else
+    echo "    migrage database version"
+    ${OVIM_PATH}/database_utils/migrate_vim_db.sh -u "$RO_DB_OVIM_USER" -p "$RO_DB_OVIM_PASSWORD" -h "$RO_DB_OVIM_HOST"\
+        -P "$RO_DB_OVIM_PORT" -d "$RO_DB_OVIM_NAME"
+fi
+
+
 echo "4/4 Try to start"
-/opt/openmano/openmanod.py -c /opt/openmano/openmanod.cfg --log-file=/opt/openmano/logs/openmano.log
\ No newline at end of file
+openmanod -c /etc/osm/openmanod.cfg --log-file=/var/log/osm/openmano.log
diff --git a/docker/scripts/wait_db.sh b/docker/scripts/wait_db.sh
deleted file mode 100755
index f083d76..0000000
--- a/docker/scripts/wait_db.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-attempt=0
-max_attempts=120
-while ! mysqladmin ping -h"$DB_HOST" -P"$DB_PORT" --silent; do
-	#wait 120 sec
-	if [ $attempt -ge $max_attempts ]; then
-		echo "Can not connect to database during $max_attempts sec"
-		exit 1
-	fi
-	attempt=$[$attempt+1]
-	echo "Wait for MySQL Server ${DB_HOST}:${DB_PORT} [attempt $attempt/$max_attempts]"
-    sleep 1
-done
\ No newline at end of file
