diff --git a/pipeline_service/init.py b/pipeline_service/init.py index 79667b4..62f25a7 100644 --- a/pipeline_service/init.py +++ b/pipeline_service/init.py @@ -379,7 +379,9 @@ _WORKDIR_FALLBACK = '/tmp/pipeline_workspaces' def _resolve_workdir(): """选择可写的工作目录根。""" - if os.path.isdir(_SHELL_BASE_DIR) or os.access(os.path.dirname(_SHELL_BASE_DIR), os.W_OK): + parent = os.path.dirname(_SHELL_BASE_DIR) + if os.path.isdir(parent) and os.access(parent, os.W_OK): + os.makedirs(_SHELL_BASE_DIR, exist_ok=True) return _SHELL_BASE_DIR os.makedirs(_WORKDIR_FALLBACK, exist_ok=True) return _WORKDIR_FALLBACK