@@ -277,7 +277,8 @@ def serve(self, model_dir, environment):
277277 script_dir = environment [sagemaker .estimator .DIR_PARAM_NAME .upper ()]
278278 parsed_uri = urlparse (script_dir )
279279 if parsed_uri .scheme == "file" :
280- volumes .append (_Volume (parsed_uri .path , "/opt/ml/code" ))
280+ host_dir = os .path .abspath (parsed_uri .netloc + parsed_uri .path )
281+ volumes .append (_Volume (host_dir , "/opt/ml/code" ))
281282 # Update path to mount location
282283 environment = environment .copy ()
283284 environment [sagemaker .estimator .DIR_PARAM_NAME .upper ()] = "/opt/ml/code"
@@ -495,7 +496,8 @@ def _prepare_training_volumes(
495496 training_dir = json .loads (hyperparameters [sagemaker .estimator .DIR_PARAM_NAME ])
496497 parsed_uri = urlparse (training_dir )
497498 if parsed_uri .scheme == "file" :
498- volumes .append (_Volume (parsed_uri .path , "/opt/ml/code" ))
499+ host_dir = os .path .abspath (parsed_uri .netloc + parsed_uri .path )
500+ volumes .append (_Volume (host_dir , "/opt/ml/code" ))
499501 # Also mount a directory that all the containers can access.
500502 volumes .append (_Volume (shared_dir , "/opt/ml/shared" ))
501503
@@ -504,7 +506,8 @@ def _prepare_training_volumes(
504506 parsed_uri .scheme == "file"
505507 and sagemaker .model .SAGEMAKER_OUTPUT_LOCATION in hyperparameters
506508 ):
507- intermediate_dir = os .path .join (parsed_uri .path , "output" , "intermediate" )
509+ dir_path = os .path .abspath (parsed_uri .netloc + parsed_uri .path )
510+ intermediate_dir = os .path .join (dir_path , "output" , "intermediate" )
508511 if not os .path .exists (intermediate_dir ):
509512 os .makedirs (intermediate_dir )
510513 volumes .append (_Volume (intermediate_dir , "/opt/ml/output/intermediate" ))
0 commit comments