docker - 如何在 windows/virtualbox 设置上将 ./project_dir 作为 docker-compose 中的卷挂载

标签 docker docker-compose boot2docker docker-volume

Docker-compose.yml 在 Mac 机器上运行良好,但我们的开发人员同时使用 Mac 和 Windows 计算机(由于其他虚拟机要求,Windows 无法使用 Hyper-V。

可以通过VM接口(interface)通过全局路径/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 的非常全面的答案(https://stackoverflow.com/a/48442262/3986395),但不幸的是,它没有帮助

最佳答案

我设法想出的一种 hacky 方法是使用 docker envfile 中定义的 env 变量来传递挂载路径:

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"

如果有人有更好的解决方案,请告诉我!

关于docker - 如何在 windows/virtualbox 设置上将 ./project_dir 作为 docker-compose 中的卷挂载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51015519/

相关文章:

docker - 从dockerfile无法安装pip

docker - 容器之间的链接在我的 Rancher 1.6.21 堆栈中不起作用

ubuntu -/var/run/docker.sock : no such file or directory. 您是否尝试在没有 TLS 的情况下连接到启用 TLS 的守护程序?

php - Docker:nginx+mariadb+php+redis的docker-compose.yml文件

spring - 非默认端口上的Docker-compose,spring app + mongoDB

Docker compose 挂载空卷

php - Docker容器的粒度

virtualization - 将纯数据 Docker 容器从一台机器移动到另一台机器的正确方法

ruby - 使用kafka-rb为客户端使用docker进行Kafka设置

asp.net - Docker 错误 : failed to register layer: Error processing tar file(exit status 1): "...msader15.dll.mui: no such file or directory"