Guest User

Untitled

a guest
Jan 21st, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. #!/bin/sh
  2. set -e
  3. CONTAINER=container_name
  4. HOSTPATH=/home/username/external/location
  5. CONTPATH=/internal/docker/container
  6.  
  7. REALPATH=$(readlink --canonicalize $HOSTPATH)
  8. FILESYS=$(df -P $REALPATH | tail -n 1 | awk '{print $6}')
  9.  
  10. while read DEV MOUNT JUNK
  11. do [ $MOUNT = $FILESYS ] && break
  12. done </proc/mounts
  13. [ $MOUNT = $FILESYS ] # Sanity check!
  14.  
  15. while read A B C SUBROOT MOUNT JUNK
  16. do [ $MOUNT = $FILESYS ] && break
  17. done < /proc/self/mountinfo
  18. [ $MOUNT = $FILESYS ] # Moar sanity check!
  19.  
  20. SUBPATH=$(echo $REALPATH | sed s,^$FILESYS,,)
  21. DEVDEC=$(printf "%d %d" $(stat --format "0x%t 0x%T" $DEV))
  22.  
  23. docker-enter $CONTAINER -- sh -c \
  24. "[ -b $DEV ] || mknod --mode 0600 $DEV b $DEVDEC"
  25. docker-enter $CONTAINER -- mkdir /tmpmnt
  26. docker-enter $CONTAINER -- mount $DEV /tmpmnt
  27. docker-enter $CONTAINER -- mkdir -p $CONTPATH
  28. docker-enter $CONTAINER -- mount -o bind /tmpmnt/$SUBROOT/$SUBPATH $CONTPATH
  29. docker-enter $CONTAINER -- umount /tmpmnt
  30. docker-enter $CONTAINER -- rmdir /tmpmnt
Add Comment
Please, Sign In to add comment