Python 当 运行 在 Ubuntu 虚拟机上使用 docker-compose 时,脚本无法访问用户主位置的目录

Python script not able to access the directory at user home location when run using docker-compose on Ubuntu virtual machine

我正在尝试使用 docker-compose 从 python 脚本 运行ning 在 docker 容器中打开目录,该文件是应用程序,设置如下

OS : Ubuntu 18.04 运行宁在 VMWare 上。

Application : 运行 on docker on top of Ubuntu OS on VMWare.

Setup : 应用程序创建自己的目录 docker-compose 称为 '/application' 并且它应该 运行 a python 脚本将从用户主文件夹内的以下目录 '/home/$user/repository' 中读取一些文件。

一段代码

repo_base = '/home/vipin/repository'
repo_folder_path = os.path.join(repo_base, 'vectors', 'current')
listOfFiles = os.listdir(repo_folder_path)

错误

FileNotFoundError: [Errno 2] No such file or directory: '/home/vipin/repository/vectors/current'

我已经尝试从终端手动 运行ning 脚本并且它工作得很好,只有当我通过 docker-compose 运行 时才会出现这个问题.

我正在 运行ning docker-使用 sudo 编写命令,也曾尝试从 root 用户 运行ning 它但没有效果。任何帮助将不胜感激

Docker 容器 运行 是不同的命名空间,默认情况下无法访问主机驱动器。 您需要使用 'volumes' 才能访问主机驱动器并将其装载到容器

示例:

  db:
    image: postgres:latest
    container_name: my_db
    #pg_hba.conf configure this file
    environment:
      - POSTGRES_USER=me
      - POSTGRES_PASSWORD=nothing
      - POSTGRES_DB=mydb
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data/

更多: https://docs.docker.com/storage/volumes/