From cf76c3b70b29ef64185fd3c9af0510c9e2fcc51e Mon Sep 17 00:00:00 2001 From: Liqun Li Date: Thu, 10 Oct 2024 19:07:44 +0800 Subject: [PATCH] Liqun/custom image (#427) --- docker/ces_container/entrypoint.sh | 3 ++- taskweaver/ces/kernel/launcher.py | 4 ---- tests/unit_tests/test_environment.py | 14 ++++++++------ 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/docker/ces_container/entrypoint.sh b/docker/ces_container/entrypoint.sh index 3b13a3be..8ece511d 100644 --- a/docker/ces_container/entrypoint.sh +++ b/docker/ces_container/entrypoint.sh @@ -9,5 +9,6 @@ groupmod -g $GROUP_ID taskweaver chown -R taskweaver:taskweaver /app -su taskweaver -c "python -m taskweaver.ces.kernel.launcher" +su taskweaver -c "python -m venv --system-site-packages venv" +su taskweaver -c "bash -c 'source venv/bin/activate; python -m taskweaver.ces.kernel.launcher'" diff --git a/taskweaver/ces/kernel/launcher.py b/taskweaver/ces/kernel/launcher.py index 759129a9..d5638e07 100644 --- a/taskweaver/ces/kernel/launcher.py +++ b/taskweaver/ces/kernel/launcher.py @@ -83,11 +83,7 @@ def start_app(): if __name__ == "__main__": if sys.path[0] == "": del sys.path[0] - import site - user_site_packages = site.getusersitepackages() - if user_site_packages not in sys.path: - sys.path.append(site.getusersitepackages()) logger.info("Starting process...") logger.info("sys.path: %s", sys.path) logger.info("os.getcwd(): %s", os.getcwd()) diff --git a/tests/unit_tests/test_environment.py b/tests/unit_tests/test_environment.py index 6d5a36fa..e737af7b 100644 --- a/tests/unit_tests/test_environment.py +++ b/tests/unit_tests/test_environment.py @@ -161,7 +161,11 @@ def test_environment_start_outside_container(): cwd = os.path.dirname(os.path.abspath(__file__)) sessions = os.path.join(cwd, "sessions") try: - env = Environment("local", env_mode=EnvMode.Container) + env = Environment( + "local", + env_mode=EnvMode.Container, + custom_image="taskweavercontainers/taskweaver-executor:0.3", + ) env.start_session( session_id="session_id", session_dir=os.path.join(sessions, "session_id"), @@ -177,13 +181,11 @@ def test_environment_start_outside_container(): connection_file = glob.glob(conn_file_glob)[0] ports_file = os.path.join(ces_dir, "ports.json") assert os.path.isfile(ports_file) - - connect_and_execute_code(connection_file, ports_file) - - saved_file = os.path.join(session_dir, "cwd", "filename.txt") - assert os.path.isfile(saved_file) + code = "!pip install yfinance\nimport sys\nprint(sys.path)\nimport yfinance as yf\nprint(yf.__version__)" + connect_and_execute_code(connection_file, ports_file, code=code) env.stop_session("session_id") + finally: # delete sessions shutil.rmtree(sessions)