如何在 docker-compose on windows/virtualbox 设置中将 ./project_dir 作为卷挂载
how to mount a ./project_dir as a volume in docker-compose on windows/virtualbox setup
Docker-compose.yml 在 mac machine 上运行良好,但我们的开发人员同时使用 mac 和 windows 计算机(windows 由于其他虚拟框要求,无法使用 hyper-v。
可以通过全局路径通过VM界面共享文件夹/volume_data_dir
然而,这会导致环境之间出现问题,因为 mac 和生产使用相对路径 ./volume_data_dir 作为挂载点。
我也试过将文件夹安装为 /home/docker/volume_data_dir(/home/docker 是 virtualbox 中 docker 的主文件夹)但没有成功。
因此我的问题是:在 vmware 中,docker-compose、运行 共享卷的目录是什么,以便能够使用相对路径挂载文件夹 ./volume_data_dir?
有问题的docker-compose.yml:
version: '3'
services:
django:
container_name: server
restart: always
depends_on:
- db
build:
context: .
dockerfile: dockerfile
image: server
stdin_open: true
tty: true
volumes:
- ./data:/var/www/data
ports:
- "8000:8000"
我已经阅读了 GreensterRox () 的非常全面的回答,但不幸的是,它没有帮助
我设法想出的一种 hacky 方法是使用 docker 环境文件中定义的环境变量来传递挂载路径:
version: '3'
services:
django:
container_name: server
restart: always
depends_on:
- db
build:
context: .
dockerfile: dockerfile
image: server
stdin_open: true
tty: true
volumes:
- $VOLUME_MOUNT_PATH:/var/www/data
ports:
- "8000:8000"
如果谁有更好的解决方案,请告诉我!
一种可能的解决方案是:
我们必须配置 Oracle VirtualBox 才能访问您的文件夹:转到“设置”、“共享文件夹”,将您的文件夹“data”添加到列表中。
在 .yml 代码中,我们必须在您的文件夹之前使用“//”:
volumes:
- //p_data:/var/www/data
其中“p_data”是您在 VirtualBox 共享文件夹菜单中定义的初始文件夹“data”的假名。
此解决方案摘自 Charles Stover 的文章:https://medium.com/@Charles_Stover/fixing-volumes-in-docker-toolbox-4ad5ace0e572
Docker-compose.yml 在 mac machine 上运行良好,但我们的开发人员同时使用 mac 和 windows 计算机(windows 由于其他虚拟框要求,无法使用 hyper-v。
可以通过全局路径通过VM界面共享文件夹/volume_data_dir
然而,这会导致环境之间出现问题,因为 mac 和生产使用相对路径 ./volume_data_dir 作为挂载点。
我也试过将文件夹安装为 /home/docker/volume_data_dir(/home/docker 是 virtualbox 中 docker 的主文件夹)但没有成功。
因此我的问题是:在 vmware 中,docker-compose、运行 共享卷的目录是什么,以便能够使用相对路径挂载文件夹 ./volume_data_dir?
有问题的docker-compose.yml:
version: '3'
services:
django:
container_name: server
restart: always
depends_on:
- db
build:
context: .
dockerfile: dockerfile
image: server
stdin_open: true
tty: true
volumes:
- ./data:/var/www/data
ports:
- "8000:8000"
我已经阅读了 GreensterRox (
我设法想出的一种 hacky 方法是使用 docker 环境文件中定义的环境变量来传递挂载路径:
version: '3'
services:
django:
container_name: server
restart: always
depends_on:
- db
build:
context: .
dockerfile: dockerfile
image: server
stdin_open: true
tty: true
volumes:
- $VOLUME_MOUNT_PATH:/var/www/data
ports:
- "8000:8000"
如果谁有更好的解决方案,请告诉我!
一种可能的解决方案是:
我们必须配置 Oracle VirtualBox 才能访问您的文件夹:转到“设置”、“共享文件夹”,将您的文件夹“data”添加到列表中。
在 .yml 代码中,我们必须在您的文件夹之前使用“//”:
volumes:
- //p_data:/var/www/data
其中“p_data”是您在 VirtualBox 共享文件夹菜单中定义的初始文件夹“data”的假名。
此解决方案摘自 Charles Stover 的文章:https://medium.com/@Charles_Stover/fixing-volumes-in-docker-toolbox-4ad5ace0e572