Browse Source

[MNT] make init_env and remove_env in DockerContainer reuse code

tags/v0.3.2
bxdd 2 years ago
parent
commit
0a7d198068
1 changed files with 12 additions and 25 deletions
  1. +12
    -25
      learnware/client/container.py

+ 12
- 25
learnware/client/container.py View File

@@ -202,6 +202,15 @@ class ModelDockerContainer(ModelContainer):
"environment": {"http_proxy": http_proxy, "https_proxy": https_proxy},
}
container = client.containers.run(**container_config)
environment_cmd = [
"pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple",
"conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/",
"conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/",
"conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/",
"conda config --set show_channel_urls yes",
]
for _cmd in environment_cmd:
container.exec_run(_cmd)
return container

@staticmethod
@@ -256,15 +265,6 @@ class ModelDockerContainer(ModelContainer):
with tempfile.TemporaryDirectory(prefix="learnware_") as tempdir:
with zipfile.ZipFile(file=zip_path, mode="r") as z_file:
logger.info(f"zip_file namelist: {z_file.namelist()}")
environment_cmd = [
"pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple",
"conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/",
"conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/",
"conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/",
"conda config --set show_channel_urls yes",
]
for _cmd in environment_cmd:
self.docker_container.exec_run(_cmd)

if "environment.yaml" in z_file.namelist():
z_file.extract(member="environment.yaml", path=tempdir)
@@ -398,25 +398,12 @@ class ModelDockerContainer(ModelContainer):
self.reset(input_shape=input_shape, output_shape=output_shape)

def _init_env(self):
"""create docker container according to the str self.docker_container, and creat the correponding conda python env"""
client = docker.from_env()
http_proxy = os.environ.get("http_proxy")
https_proxy = os.environ.get("https_proxy")

container_config = {
"image": "continuumio/miniconda3",
"network_mode": "host",
"detach": True,
"tty": True,
"command": "bash",
"environment": {"http_proxy": http_proxy, "https_proxy": https_proxy},
}
self.docker_container = client.containers.run(**container_config)
"""create docker container according to the str"""
self.docker_container = ModelDockerContainer._generate_docker_container()

def _remove_env(self):
"""remove the docker container"""
self.docker_container.stop()
self.docker_container.remove()
ModelDockerContainer._destroy_docker_container(docker_container)

def _run_model_with_script(self, method, **kargs):
with tempfile.TemporaryDirectory(prefix="learnware_") as tempdir:


Loading…
Cancel
Save