docker映像中python函数的绝对路径
我具有以下功能,可以从项目目录中删除刮取的图像:docker映像中python函数的绝对路径,python,docker,Python,Docker,我具有以下功能,可以从项目目录中删除刮取的图像: import os # Function to delete all .jpg files from project directory def remove_jpg(): # script_dir = os.path.dirname(__file__) # rel_path = "/Users/myname/Documents/project_directory/" # abs_file_path
import os
# Function to delete all .jpg files from project directory
def remove_jpg():
# script_dir = os.path.dirname(__file__)
# rel_path = "/Users/myname/Documents/project_directory/"
# abs_file_path = os.path.join(script_dir, rel_path)
path = "/Users/myname/Documents/project_directory/"
for file in os.scandir(path):
if file.name.endswith(".jpg"):
os.unlink(file.path)
# Main function ----
if __name__ == '__main__':
remove_jpg()
当我通过Docker build-t project-test1.
创建我的Docker映像,并在Docker桌面应用程序中运行该项目时,我总是会遇到以下错误:
FileNotFoundError:[Errno 2]没有这样的文件或目录:'/Users/myname/Documents/project\u directory/'
我已经尝试过使
路径
变量不是绝对变量,但是我没有运气在上面的函数中使用注释掉的代码来运行它。这是副本的问题吗或函数中的错误代码?运行命令COPY
将当前文件夹的内容复制到容器映像的根目录中(除非之前使用WORKDIR
更改了工作文件夹)
指定的路径似乎指向您的本地目录,该目录通常在容器中不是有效的路径。要使代码在本地和容器内工作,应通过利用相对路径或允许通过脚本参数或环境变量指定目标目录来避免硬编码文件名
顺便说一句,您可以检查运行
docker run-it project-test1 bash的容器中文件的路径实际路径,并四处查看。docker容器在一个独立的文件系统中运行;如果在容器中运行此脚本,它将看不到主机/Users
路径,也无法删除其中的文件。在Docker之外运行此脚本可能更容易。