First part of Containernet re-integration
authorpeusterm <manuel.peuster@uni-paderborn.de>
Wed, 11 May 2016 11:44:59 +0000 (13:44 +0200)
committerpeusterm <manuel.peuster@uni-paderborn.de>
Wed, 11 May 2016 11:44:59 +0000 (13:44 +0200)
README.md
ansible/install.yml
setup.py
src/emuvim/dcemulator/net.py
src/emuvim/dcemulator/node.py
src/emuvim/test/base.py
src/emuvim/test/test_emulator.py
src/emuvim/test/test_resourcemodel.py
src/emuvim/test/test_sonata_dummy_gatekeeper.py
utils/docker/Dockerfile
utils/docker/entrypoint.sh

index f37712f..6d54ca5 100755 (executable)
--- a/README.md
+++ b/README.md
@@ -27,6 +27,7 @@ The following lead developers are responsible for this repository and have admin
 * flask_restful (BSD)
 * requests  (Apache 2.0)
 * docker-py (Apache 2.0)
 * flask_restful (BSD)
 * requests  (Apache 2.0)
 * docker-py (Apache 2.0)
+* paramiko (LGPL)
 
 ### 3rd-party code used
 * (none)
 
 ### 3rd-party code used
 * (none)
@@ -37,7 +38,7 @@ The following lead developers are responsible for this repository and have admin
 * **src/emuvim/** all emulator code 
  * **api/** Data center API endpoint implementations (zerorpc, OpenStack REST, ...)
  * **cli/** CLI client to interact with a running emulator
 * **src/emuvim/** all emulator code 
  * **api/** Data center API endpoint implementations (zerorpc, OpenStack REST, ...)
  * **cli/** CLI client to interact with a running emulator
- * **dcemulator/** Dockernet wrapper that introduces the notion of data centers and API endpoints
+ * **dcemulator/** Containernet wrapper that introduces the notion of data centers and API endpoints
  * **examples/** Example topology scripts
  * **test/** Unit tests
 * **ansible/** Ansible install scripts
  * **examples/** Example topology scripts
  * **test/** Unit tests
 * **ansible/** Ansible install scripts
@@ -51,10 +52,10 @@ Automatic installation is provide through Ansible playbooks.
 * `sudo vim /etc/ansible/hosts`
 * Add: `localhost ansible_connection=local`
 
 * `sudo vim /etc/ansible/hosts`
 * Add: `localhost ansible_connection=local`
 
-#### 1. Dockernet
+#### 1. Containernet
 * `cd`
 * `cd`
-* `git clone -b dockernet-sonata https://github.com/mpeuster/dockernet.git`
-* `cd ~/dockernet/ansible`
+* `git clone https://github.com/mpeuster/containernet.git`
+* `cd ~/containernet/ansible`
 * `sudo ansible-playbook install.yml`
 * Wait (and have a coffee) ...
 
 * `sudo ansible-playbook install.yml`
 * Wait (and have a coffee) ...
 
@@ -82,7 +83,7 @@ In the `~/son-emu` directory:
  * `son-emu-cli compute start -d datacenter1 -n vnf2`
  * `son-emu-cli compute list`
 * First terminal:
  * `son-emu-cli compute start -d datacenter1 -n vnf2`
  * `son-emu-cli compute list`
 * First terminal:
- * `dockernet> vnf1 ping -c 2 vnf2`
+ * `containernet> vnf1 ping -c 2 vnf2`
 * Second terminal:
  *  `son-emu-cli monitor get_rate -vnf vnf1`
 
 * Second terminal:
  *  `son-emu-cli monitor get_rate -vnf vnf1`
 
index b31615e..0aa0ab6 100755 (executable)
@@ -12,6 +12,9 @@
    - name: install libzmq-dev
      apt: pkg=libzmq-dev state=installed
 
    - name: install libzmq-dev
      apt: pkg=libzmq-dev state=installed
 
+   - name: install libffi-dev
+     apt: pkg=libffi-dev state=installed
+
    - name: install pip
      apt: pkg=python-pip state=installed
 
    - name: install pip
      apt: pkg=python-pip state=installed
 
@@ -57,5 +60,8 @@
    - name: install prometheus_client
      pip: name=prometheus_client state=latest
 
    - name: install prometheus_client
      pip: name=prometheus_client state=latest
 
+   - name: install paramiko
+     pip: name=paramiko state=latest
+
 
 
 
 
index 367c4fb..8e4b16e 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
 
 setup(name='emuvim',
       version='0.0.1',
 
 setup(name='emuvim',
       version='0.0.1',
-      license='TODO',
+      license='Apache 2.0',
       description='emuvim is a VIM for the SONATA platform',
       url='http://github.com/sonata-emu',
       author_email='sonata-dev@sonata-nfv.eu',
       description='emuvim is a VIM for the SONATA platform',
       url='http://github.com/sonata-emu',
       author_email='sonata-dev@sonata-nfv.eu',
@@ -23,7 +23,8 @@ setup(name='emuvim',
           'flask_restful',
           'docker-py',
           'requests',
           'flask_restful',
           'docker-py',
           'requests',
-         'prometheus_client'
+             'prometheus_client',
+          'paramiko'
       ],
       zip_safe=False,
       entry_points={
       ],
       zip_safe=False,
       entry_points={
index 248dc34..7f31a46 100755 (executable)
@@ -12,7 +12,7 @@ import re
 import urllib2
 from functools import partial
 
 import urllib2
 from functools import partial
 
-from mininet.net import Dockernet
+from mininet.net import Containernet
 from mininet.node import Controller, DefaultController, OVSSwitch, OVSKernelSwitch, Docker, RemoteController
 from mininet.cli import CLI
 from mininet.link import TCLink
 from mininet.node import Controller, DefaultController, OVSSwitch, OVSKernelSwitch, Docker, RemoteController
 from mininet.cli import CLI
 from mininet.link import TCLink
@@ -21,9 +21,9 @@ from emuvim.dcemulator.monitoring import DCNetworkMonitor
 from emuvim.dcemulator.node import Datacenter, EmulatorCompute
 from emuvim.dcemulator.resourcemodel import ResourceModelRegistrar
 
 from emuvim.dcemulator.node import Datacenter, EmulatorCompute
 from emuvim.dcemulator.resourcemodel import ResourceModelRegistrar
 
-class DCNetwork(Dockernet):
+class DCNetwork(Containernet):
     """
     """
-    Wraps the original Mininet/Dockernet class and provides
+    Wraps the original Mininet/Containernet class and provides
     methods to add data centers, switches, etc.
 
     This class is used by topology definition scripts.
     methods to add data centers, switches, etc.
 
     This class is used by topology definition scripts.
@@ -34,7 +34,7 @@ class DCNetwork(Dockernet):
                  dc_emulation_max_mem=512,  # emulation max mem in MB
                  **kwargs):
         """
                  dc_emulation_max_mem=512,  # emulation max mem in MB
                  **kwargs):
         """
-        Create an extended version of a Dockernet network
+        Create an extended version of a Containernet network
         :param dc_emulation_max_cpu: max. CPU time used by containers in data centers
         :param kwargs: path through for Mininet parameters
         :return:
         :param dc_emulation_max_cpu: max. CPU time used by containers in data centers
         :param kwargs: path through for Mininet parameters
         :return:
@@ -42,7 +42,7 @@ class DCNetwork(Dockernet):
         self.dcs = {}
 
         # call original Docker.__init__ and setup default controller
         self.dcs = {}
 
         # call original Docker.__init__ and setup default controller
-        Dockernet.__init__(
+        Containernet.__init__(
             self, switch=OVSKernelSwitch, **kwargs)
 
         # Ryu management
             self, switch=OVSKernelSwitch, **kwargs)
 
         # Ryu management
@@ -121,11 +121,11 @@ class DCNetwork(Dockernet):
                 params["params2"]["ip"] = self.getNextIp()
         # ensure that we allow TCLinks between data centers
         # TODO this is not optimal, we use cls=Link for containers and TCLink for data centers
                 params["params2"]["ip"] = self.getNextIp()
         # ensure that we allow TCLinks between data centers
         # TODO this is not optimal, we use cls=Link for containers and TCLink for data centers
-        # see Dockernet issue: https://github.com/mpeuster/dockernet/issues/3
+        # see Containernet issue: https://github.com/mpeuster/containernet/issues/3
         if "cls" not in params:
             params["cls"] = TCLink
 
         if "cls" not in params:
             params["cls"] = TCLink
 
-        link = Dockernet.addLink(self, node1, node2, **params)
+        link = Containernet.addLink(self, node1, node2, **params)
 
         # try to give container interfaces a default id
         node1_port_id = node1.ports[link.intf1]
 
         # try to give container interfaces a default id
         node1_port_id = node1.ports[link.intf1]
@@ -143,7 +143,7 @@ class DCNetwork(Dockernet):
 
         # add edge and assigned port number to graph in both directions between node1 and node2
         # port_id: id given in descriptor (if available, otherwise same as port)
 
         # add edge and assigned port number to graph in both directions between node1 and node2
         # port_id: id given in descriptor (if available, otherwise same as port)
-        # port: portnumber assigned by Dockernet
+        # port: portnumber assigned by Containernet
 
         attr_dict = {}
         # possible weight metrics allowed by TClink class:
 
         attr_dict = {}
         # possible weight metrics allowed by TClink class:
@@ -180,14 +180,14 @@ class DCNetwork(Dockernet):
         Wrapper for addDocker method to use custom container class.
         """
         self.DCNetwork_graph.add_node(label)
         Wrapper for addDocker method to use custom container class.
         """
         self.DCNetwork_graph.add_node(label)
-        return Dockernet.addDocker(self, label, cls=EmulatorCompute, **params)
+        return Containernet.addDocker(self, label, cls=EmulatorCompute, **params)
 
     def removeDocker( self, label, **params ):
         """
         Wrapper for removeDocker method to update graph.
         """
         self.DCNetwork_graph.remove_node(label)
 
     def removeDocker( self, label, **params ):
         """
         Wrapper for removeDocker method to update graph.
         """
         self.DCNetwork_graph.remove_node(label)
-        return Dockernet.removeDocker(self, label, **params)
+        return Containernet.removeDocker(self, label, **params)
 
     def addSwitch( self, name, add_to_graph=True, **params ):
         """
 
     def addSwitch( self, name, add_to_graph=True, **params ):
         """
@@ -195,7 +195,7 @@ class DCNetwork(Dockernet):
         """
         if add_to_graph:
             self.DCNetwork_graph.add_node(name)
         """
         if add_to_graph:
             self.DCNetwork_graph.add_node(name)
-        return Dockernet.addSwitch(self, name, protocols='OpenFlow10,OpenFlow12,OpenFlow13', **params)
+        return Containernet.addSwitch(self, name, protocols='OpenFlow10,OpenFlow12,OpenFlow13', **params)
 
     def getAllContainers(self):
         """
 
     def getAllContainers(self):
         """
@@ -210,7 +210,7 @@ class DCNetwork(Dockernet):
         # start
         for dc in self.dcs.itervalues():
             dc.start()
         # start
         for dc in self.dcs.itervalues():
             dc.start()
-        Dockernet.start(self)
+        Containernet.start(self)
 
     def stop(self):
 
 
     def stop(self):
 
@@ -219,7 +219,7 @@ class DCNetwork(Dockernet):
             self.monitor_agent.stop()
 
         # stop emulator net
             self.monitor_agent.stop()
 
         # stop emulator net
-        Dockernet.stop(self)
+        Containernet.stop(self)
 
         # stop Ryu controller
         self.stopRyu()
 
         # stop Ryu controller
         self.stopRyu()
index 3258a9f..f9328e3 100755 (executable)
@@ -19,7 +19,7 @@ DCDPID_BASE = 1000  # start of switch dpid's used for data center switches
 class EmulatorCompute(Docker):
     """
     Emulator specific compute node class.
 class EmulatorCompute(Docker):
     """
     Emulator specific compute node class.
-    Inherits from Dockernet's Docker host class.
+    Inherits from Containernet's Docker host class.
     Represents a single container connected to a (logical)
     data center.
     We can add emulator specific helper functions to it.
     Represents a single container connected to a (logical)
     data center.
     We can add emulator specific helper functions to it.
@@ -168,7 +168,7 @@ class Datacenter(object):
         # if no --net option is given, network = [{}], so 1 empty dict in the list
         # this results in 1 default interface with a default ip address
         for nw in network:
         # if no --net option is given, network = [{}], so 1 empty dict in the list
         # this results in 1 default interface with a default ip address
         for nw in network:
-            # TODO we cannot use TCLink here (see: https://github.com/mpeuster/dockernet/issues/3)
+            # TODO we cannot use TCLink here (see: https://github.com/mpeuster/containernet/issues/3)
             self.net.addLink(d, self.switch, params1=nw, cls=Link, intfName1=nw.get('id'))
         # do bookkeeping
         self.containers[name] = d
             self.net.addLink(d, self.switch, params1=nw, cls=Link, intfName1=nw.get('id'))
         # do bookkeeping
         self.containers[name] = d
index 4bad515..5a83547 100644 (file)
@@ -74,11 +74,11 @@ class SimpleTestTopology(unittest.TestCase):
                 base_url='unix://var/run/docker.sock')
         return self.docker_cli
 
                 base_url='unix://var/run/docker.sock')
         return self.docker_cli
 
-    def getDockernetContainers(self):
+    def getContainernetContainers(self):
         """
         """
-        List the containers managed by dockernet
+        List the containers managed by containernet
         """
         """
-        return self.getDockerCli().containers(filters={"label": "com.dockernet"})
+        return self.getDockerCli().containers(filters={"label": "com.containernet"})
 
     @staticmethod
     def setUp():
 
     @staticmethod
     def setUp():
@@ -90,7 +90,7 @@ class SimpleTestTopology(unittest.TestCase):
         # make sure that all pending docker containers are killed
         with open(os.devnull, 'w') as devnull:
             subprocess.call(
         # make sure that all pending docker containers are killed
         with open(os.devnull, 'w') as devnull:
             subprocess.call(
-                "sudo docker rm -f $(sudo docker ps --filter 'label=com.dockernet' -a -q)",
+                "sudo docker rm -f $(sudo docker ps --filter 'label=com.containernet' -a -q)",
                 stdout=devnull,
                 stderr=devnull,
                 shell=True)
\ No newline at end of file
                 stdout=devnull,
                 stderr=devnull,
                 shell=True)
\ No newline at end of file
index 2038116..243f050 100755 (executable)
@@ -32,7 +32,7 @@ class testEmulatorTopology( SimpleTestTopology ):
         # start Mininet network
         self.startNet()
         # check number of running nodes
         # start Mininet network
         self.startNet()
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 0)
+        self.assertTrue(len(self.getContainernetContainers()) == 0)
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 1)
         # check connectivity by using ping
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 1)
         # check connectivity by using ping
@@ -54,7 +54,7 @@ class testEmulatorTopology( SimpleTestTopology ):
         # start Mininet network
         self.startNet()
         # check number of running nodes
         # start Mininet network
         self.startNet()
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 0)
+        self.assertTrue(len(self.getContainernetContainers()) == 0)
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 2)
         # check connectivity by using ping
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 2)
         # check connectivity by using ping
@@ -79,7 +79,7 @@ class testEmulatorTopology( SimpleTestTopology ):
         # start Mininet network
         self.startNet()
         # check number of running nodes
         # start Mininet network
         self.startNet()
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 0)
+        self.assertTrue(len(self.getContainernetContainers()) == 0)
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 5)
         # check connectivity by using ping
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 5)
         # check connectivity by using ping
@@ -110,7 +110,7 @@ class testEmulatorCompute( SimpleTestTopology ):
         # add compute resources
         vnf1 = self.dc[0].startCompute("vnf1")
         # check number of running nodes
         # add compute resources
         vnf1 = self.dc[0].startCompute("vnf1")
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 1)
+        self.assertTrue(len(self.getContainernetContainers()) == 1)
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 1)
         # check compute list result
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 1)
         # check compute list result
@@ -136,7 +136,7 @@ class testEmulatorCompute( SimpleTestTopology ):
         # add compute resources
         vnf1 = self.dc[0].startCompute("vnf1")
         # check number of running nodes
         # add compute resources
         vnf1 = self.dc[0].startCompute("vnf1")
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 1)
+        self.assertTrue(len(self.getContainernetContainers()) == 1)
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 1)
         # check compute list result
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 1)
         # check compute list result
@@ -146,7 +146,7 @@ class testEmulatorCompute( SimpleTestTopology ):
         # remove compute resources
         self.dc[0].stopCompute("vnf1")
         # check number of running nodes
         # remove compute resources
         self.dc[0].stopCompute("vnf1")
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 0)
+        self.assertTrue(len(self.getContainernetContainers()) == 0)
         self.assertTrue(len(self.net.hosts) == 1)
         self.assertTrue(len(self.net.switches) == 1)
         # check compute list result
         self.assertTrue(len(self.net.hosts) == 1)
         self.assertTrue(len(self.net.switches) == 1)
         # check compute list result
@@ -168,7 +168,7 @@ class testEmulatorCompute( SimpleTestTopology ):
         # add compute resources
         vnf1 = self.dc[0].startCompute("vnf1")
         # check number of running nodes
         # add compute resources
         vnf1 = self.dc[0].startCompute("vnf1")
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 1)
+        self.assertTrue(len(self.getContainernetContainers()) == 1)
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 1)
         # check compute list result
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 1)
         # check compute list result
@@ -202,7 +202,7 @@ class testEmulatorCompute( SimpleTestTopology ):
         vnf1 = self.dc[0].startCompute("vnf1")
         vnf2 = self.dc[1].startCompute("vnf2")
         # check number of running nodes
         vnf1 = self.dc[0].startCompute("vnf1")
         vnf2 = self.dc[1].startCompute("vnf2")
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 2)
+        self.assertTrue(len(self.getContainernetContainers()) == 2)
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 5)
         # check compute list result
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 5)
         # check compute list result
@@ -231,7 +231,7 @@ class testEmulatorCompute( SimpleTestTopology ):
         vnf1 = self.dc[0].startCompute("vnf1")
         vnf2 = self.dc[1].startCompute("vnf2")
         # check number of running nodes
         vnf1 = self.dc[0].startCompute("vnf1")
         vnf2 = self.dc[1].startCompute("vnf2")
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 2)
+        self.assertTrue(len(self.getContainernetContainers()) == 2)
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 5)
         # check compute list result
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 5)
         # check compute list result
@@ -242,7 +242,7 @@ class testEmulatorCompute( SimpleTestTopology ):
         # remove compute resources
         self.dc[0].stopCompute("vnf1")
         # check number of running nodes
         # remove compute resources
         self.dc[0].stopCompute("vnf1")
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 1)
+        self.assertTrue(len(self.getContainernetContainers()) == 1)
         self.assertTrue(len(self.net.hosts) == 1)
         self.assertTrue(len(self.net.switches) == 5)
         # check compute list result
         self.assertTrue(len(self.net.hosts) == 1)
         self.assertTrue(len(self.net.switches) == 5)
         # check compute list result
index 1817a25..a1d273c 100644 (file)
@@ -41,7 +41,7 @@ class testResourceModel(SimpleTestTopology):
         # start Mininet network
         self.startNet()
         # check number of running nodes
         # start Mininet network
         self.startNet()
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 0)
+        self.assertTrue(len(self.getContainernetContainers()) == 0)
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 1)
         # check resource model and resource model registrar
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 1)
         # check resource model and resource model registrar
@@ -213,7 +213,7 @@ class testUpbSimpleCloudDcRM(SimpleTestTopology):
 
     def testInRealTopo(self):
         """
 
     def testInRealTopo(self):
         """
-        Start a real container and check if limitations are really passed down to Dockernet.
+        Start a real container and check if limitations are really passed down to Conteinernet.
         :return:
         """
         # ATTENTION: This test should only be executed if emu runs not inside a Docker container,
         :return:
         """
         # ATTENTION: This test should only be executed if emu runs not inside a Docker container,
@@ -231,7 +231,7 @@ class testUpbSimpleCloudDcRM(SimpleTestTopology):
         # start Mininet network
         self.startNet()
         # check number of running nodes
         # start Mininet network
         self.startNet()
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 0)
+        self.assertTrue(len(self.getContainernetContainers()) == 0)
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 1)
         # check resource model and resource model registrar
         self.assertTrue(len(self.net.hosts) == 2)
         self.assertTrue(len(self.net.switches) == 1)
         # check resource model and resource model registrar
index db3fd92..33a1d57 100644 (file)
@@ -60,7 +60,7 @@ class testSonataDummyGatekeeper(SimpleTestTopology):
         self.assertEqual(len(r4.json().get("service_instance_list")), 1)
 
         # check number of running nodes
         self.assertEqual(len(r4.json().get("service_instance_list")), 1)
 
         # check number of running nodes
-        self.assertTrue(len(self.getDockernetContainers()) == 3)
+        self.assertTrue(len(self.getContainernetContainers()) == 3)
         self.assertTrue(len(self.net.hosts) == 5)
         self.assertTrue(len(self.net.switches) == 2)
         # check compute list result
         self.assertTrue(len(self.net.hosts) == 5)
         self.assertTrue(len(self.net.switches) == 2)
         # check compute list result
index 2c1bda6..ebd3607 100644 (file)
@@ -1,14 +1,8 @@
-FROM cgeoffroy/dockernet
+FROM mpeuster/containernet
+MAINTAINER manuel@peuster.de
 
 ENV SON_EMU_IN_DOCKER 1
 
 
 ENV SON_EMU_IN_DOCKER 1
 
-# ensure that we have the latest dockernet code base!
-WORKDIR /
-RUN rm -rf dockernet
-RUN git clone -b dockernet-sonata https://github.com/mpeuster/dockernet.git
-WORKDIR /dockernet
-RUN python setup.py develop
-
 WORKDIR /son-emu
 COPY . /son-emu/
 
 WORKDIR /son-emu
 COPY . /son-emu/
 
index 580762f..7e72914 100755 (executable)
@@ -1,7 +1,7 @@
 #! /bin/bash -e
 set -x
 
 #! /bin/bash -e
 set -x
 
-#cp /dockernet/util/docker/entrypoint.sh /tmp/x.sh
-#cat /tmp/x.sh | awk 'NR==1{print; print "set -x"} NR!=1' > /dockernet/util/docker/entrypoint.sh
+#cp /containernet/util/docker/entrypoint.sh /tmp/x.sh
+#cat /tmp/x.sh | awk 'NR==1{print; print "set -x"} NR!=1' > /conteinernet/util/docker/entrypoint.sh
 
 
-exec /dockernet/util/docker/entrypoint.sh $*
+exec /containernet/util/docker/entrypoint.sh $*