Skip to content

Commit e3efe52

Browse files
committed
Fixed another symlinking issue with Docker + staged files from InitialWorkDirRequirement
1 parent 8763bed commit e3efe52

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

cwltool/docker.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,9 @@ def add_file_or_directory_volume(
261261
"""Append volume a file/dir mapping to the runtime option list."""
262262
if not volume.resolved.startswith("_:"):
263263
_check_docker_machine_path(volume.resolved)
264-
self.append_volume(runtime, volume.resolved, volume.target)
264+
self.append_volume(
265+
runtime, volume.resolved, volume.target, writable=volume.staged
266+
)
265267

266268
def add_writable_file_volume(
267269
self,

cwltool/job.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,18 +95,13 @@ def relink_initialworkdir(
9595
host_outdir, vol.target[len(container_outdir) + 1 :]
9696
)
9797
if os.path.islink(host_outdir_tgt) or os.path.isfile(host_outdir_tgt):
98-
try:
99-
os.remove(host_outdir_tgt)
100-
except PermissionError:
101-
pass
98+
subprocess.run(["chmod", "777", host_outdir_tgt], check=True)
99+
os.remove(host_outdir_tgt)
102100
elif os.path.isdir(host_outdir_tgt) and not vol.resolved.startswith("_:"):
101+
subprocess.run(["chmod", "777", host_outdir_tgt], check=True)
103102
shutil.rmtree(host_outdir_tgt)
104103
if not vol.resolved.startswith("_:"):
105-
try:
106-
os.symlink(vol.resolved, host_outdir_tgt)
107-
except FileExistsError:
108-
pass
109-
104+
os.symlink(vol.resolved, host_outdir_tgt)
110105

111106
def neverquote(string: str, pos: int = 0, endpos: int = 0) -> Optional[Match[str]]:
112107
return None

0 commit comments

Comments
 (0)