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/
我正在尝试使用 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/