diff --git a/gns3server/compute/docker/docker_vm.py b/gns3server/compute/docker/docker_vm.py index a5ec22ce..3790c5f6 100644 --- a/gns3server/compute/docker/docker_vm.py +++ b/gns3server/compute/docker/docker_vm.py @@ -90,6 +90,7 @@ class DockerVM(BaseNode): self._console_http_port = console_http_port self._console_websocket = None self._extra_hosts = extra_hosts + self._permissions_fixed = False self._volumes = [] # Keep a list of created bridge @@ -447,6 +448,7 @@ class DockerVM(BaseNode): if self.allocate_aux: yield from self._start_aux() + self._permissions_fixed = False self.status = "started" log.info("Docker container '{name}' [{image}] started listen for {console_type} on {console}".format(name=self._name, image=self._image, @@ -511,6 +513,7 @@ class DockerVM(BaseNode): except OSError as e: raise DockerError("Could not fix permissions for {}: {}".format(volume, e)) yield from process.wait() + self._permissions_fixed = True @asyncio.coroutine def _start_vnc(self): @@ -697,7 +700,7 @@ class DockerVM(BaseNode): if state == "paused": yield from self.unpause() - if state == "running": + if not self._permissions_fixed: yield from self._fix_permissions() state = yield from self._get_container_state()