【问题标题】:When running docker-compose remotely, an error occurs with mounting volumes远程运行docker-compose时,挂载卷出错
【发布时间】:2021-11-01 21:24:40
【问题描述】:

我正在尝试通过远程服务器在 docker-compose 上运行一个项目。一切正常,但是一旦我添加有关安装卷的项目,它就会出错:

Error response from daemon: invalid mount config for type "bind": invalid mount path: 'C:/Users/user/Projects/my-raspberry-test' mount path must be absolute

为了运行,我使用来自 PhpStorm 的工具。

docker-compose.yml 文件本身如下所示:

version: "3"

services:
  php:
    image: php:cli
    volumes:
      - ./:/var/www/html/
    working_dir: /var/www/html/
    ports:
      - 80:80
    command: php -S 0.0.0.0:80

我通过 ssh 检查:

  • 守护进程正在运行,
  • Docker 工作(在具有相同任务的类似 Dockerfile 上),
  • Docker-compose 工作(在同一个文件上)。

还使用 phpstorm 和文件检查了 docker 远程运行:

FROM php:cli
COPY . /var/www/html/
WORKDIR /var/www/html/
CMD php -S 0.0.0.0:80

它没有给出错误并且它有效。

设备上的操作系统:

  • PC:Windows 10
  • 服务器:Fedora 服务器

无需在 docker-compose 中安装卷,一切都会开始。也许有人遇到过类似的问题? 以php为例。

【问题讨论】:

  • 您正在尝试安装对远程主机无效的相对路径。这也是你的错误告诉你的。据我所知,您只能使用命名卷。
  • @TheFool 我试图更改为绝对路径- C:/Users/user/Projects/my-raspberry-test/app/:/var/www/html/ 但没有任何改变
  • 你提供的路径是windows的路径。那肯定行不通。您的容器在另一台服务器上运行。该路径甚至不存在于服务器上。卷安装在运行守护程序的主机上。正如我所说,我认为您实际上只能使用命名卷。
  • 有点,我有地方可以看看尝试解决问题。但我使用 docker-compose 因为它会动态更新我在工作时不断更改的文件。不确定类似的方法是否也能奏效

标签: docker docker-compose


【解决方案1】:

远程主机的路径必须是绝对路径,并且项目数据本身必须加载到那里。即需要将项目上传到远程主机。

我纠正了这样的一切:

volumes:
  - /home/peter-alexeev/my-test:/var/www/html/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多