/mount_path/project_name/arc001/session_name/SCANS/3/DICOM
. It tells docker to launch a container with that path mounted. Docker creates the container but sees that the given path to be mounted doesn't exist, tries to create it, and fails for some reason. But the fact that docker fails to create this path is, to me, not the root of the issue. We don't want docker to be attempting to create these archive paths in the first place. We want CS to determine the paths to the data your container needs, and for docker to mount the data from those paths. If there isn't any data at a path because the path doesn't exist then there is no reason for CS to tell docker to mount it.--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/xnat_discussion/f6bb96fb-aae2-4b55-a646-3b010852772cn%40googlegroups.com.
![]()
Hey Steve,
I just wanted to highlight the mention of path-translation below, as that is normally the cause of this type of error for me. If you are running XNAT/Tomcat in a container, this is a setting that would normally need to be modified from the default (along with Processing URL).
If you have command line access on the system running Docker, you can
inspect any completed containers and list the associated bind mounts, verifying access to them from the Docker server. Note that you might need to disable “Automatically cleanup containers” for Docker to retain the completed containers. (Under Plugin
Settings -> Compute Backend -> Compute Backend Configuration -> Edit)
Once you have started your test container in XNAT, issue the command:
docker ps -a
on the command line. Note the ID of your container, then issue the command:
docker inspect container_id
In addition to, sometimes, helpful error messages, you will see any bind mounts associated with the container:
The source portion of the bind mount (/Users/Kelsey/Projects/XNAT/xnat-docker-compose/xnat-data/etc/etc above) needs to be accessible to the machine hosting your Docker engine.
e.g.
If this doesn’t get you unstuck, my next debugging step is to start the container with a ‘sleep 1000’ command and use the ‘docker exec' command to poke around internally for clues. Happy to walk you through that process if needed.
Best,
Matt
Can anyone provide some debugging tips? Any help would be greatly appreciated.
--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/xnat_discussion/f6bb96fb-aae2-4b55-a646-3b010852772cn%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
xnat_discussi...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/xnat_discussion/e9793a0c-21ef-40f2-b2ae-43f5317e22fen%40googlegroups.com.
The materials in this message are private and may contain Protected Healthcare Information or other information of a sensitive nature. If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail.
private void createDirectoriesForMounts(final Container toCreate) throws IOException {
final List<Container.ContainerMount> containerMounts = toCreate.mounts() == null ? Collections.emptyList() : toCreate.mounts();
for (final Container.ContainerMount mount : containerMounts) {
final Path mountFile = Paths.get(mount.xnatHostPath());
if (!Files.isRegularFile(mountFile)) { // <------------------------------------ returns False
Files.createDirectories(mountFile);
}
}
}
QUESTION: Based on my understanding, this snippet is where the directory creation is attempted if Docker does not recognize the path. Could you confirm whether this interpretation is correct?
The following is the terminal command I ran:
docker run -it 73ff24d0616e --mount type=bind,src=/mount_path,dst=/input
error while creating mount source path '/mount_path/project_name/arc001/session_name/SCANS/3/DICOM': mkdir /mount_path/archive: permission denied
/mount_path/project_name
but the specific error message is about /mount_path/archive
. I wonder if that inconsistency is important to figuring out the cause of the issue. Maybe you need a path translation that adds or removes the /archive
level of the path?