[Python] Python script can't move file between mounted docker volumes while mv command could

Discussão em 'Python' iniciado por Stack, Dezembro 8, 2024.

  1. Stack

    Stack Membro Participativo

    I think I did configure docker volumes correctly, but I can't understand why mv command success called from interactive bash shell.

    FROM ubuntu:rolling

    RUN apt update

    RUN apt install -y python3 python3-venv

    USER ubuntu


    $ docker run --rm --interactive --tty --volume .:/home/ubuntu/data --volume $HOME/Downloads:/home/ubuntu/downloads --workdir /home/ubuntu/data vntk2:latest bash


    >>> import pathlib
    >>> pathlib.Path('/home/ubuntu/downloads/SoftwareEngineer.pdf').exists()
    True
    >>> pathlib.Path('/home/ubuntu/downloads/SoftwareEngineer.pdf').rename(pathlib.Path('/home/ubuntu/data/'))
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/usr/lib/python3.12/pathlib.py", line 1365, in rename
    os.rename(self, target)
    OSError: [Errno 18] Invalid cross-device link: '/home/ubuntu/downloads/SoftwareEngineer.pdf' -> '/home/ubuntu/data'
    >>>


    ubuntu@d3d1c2e286c2:~/data$ mv /home/ubuntu/downloads/SoftwareEngineer.pdf /home/ubuntu/data/
    ubuntu@d3d1c2e286c2:~/data$ ls -lah /home/ubuntu/data/
    total 820K
    drwxrwxr-x 8 ubuntu ubuntu 4.0K Dec 8 00:03 .
    drwxr-x--- 1 ubuntu ubuntu 4.0K Dec 8 00:02 ..
    -rw-rw-r-- 1 ubuntu ubuntu 765K Nov 15 12:14 SoftwareEngineer.pdf
    ubuntu@d3d1c2e286c2:~/data$

    Continue reading...

Compartilhe esta Página