【问题标题】:Docker stack deploy with compose-file results in invalid mount config for type "bind": bind source path does not exist:使用 compose-file 部署 Docker 堆栈导致类型“bind”的挂载配置无效:绑定源路径不存在:
【发布时间】:2019-09-30 10:13:51
【问题描述】:

我正在尝试部署我的容器并收到此错误(来自docker stack ps testapp --no-trunc):invalid mount config for type "bind": bind source path does not exist: /home/john/valet/testapp。 我正在使用docker-compose。我知道在部署之前它会将我的相对卷映射转换为绝对卷映射,并且在远程主机上 /home/john/valet/testapp 不存在。

  volumes:
        - ./:/var/www/:cached

但我不确定如何解决这个问题。

附:在本地,docker-compose build && docker-compose up -d 和 docker hub 上一切正常,我的自动构建也成功构建。

已编辑:以防万一添加源代码的回购:https://github.com/neorganic/dockertest

【问题讨论】:

  • 您在远程 docker-compose 文件中使用/home/john/valet/testapp。或者可能是权限问题invalid mount config for type "bind": bind mount source path does not exist: <some path> means the filesystem isn't successfully shared into the docker container.
  • @Adiii 好的,但是如何不使用该路径?因为我无处设置/home/john/valet/testapp 路径。我现在正在设置动态路径$PWD:/var/www/:cached
  • 尝试使用 docker run 命令运行调试问题,是否允许 docker 访问 $PWD 位置?
  • @Adiii 将进行测试,但仅供参考,添加了源代码链接 - 可能有用吗?

标签: docker docker-compose dockerfile docker-swarm docker-stack


【解决方案1】:

所以实际的问题是我不明白卷必须存在于我正在部署容器的主机上。出于某种原因,我认为它是从我的本地设备复制/同步的。

我还得出结论,当kubernetes 解决了这个问题时,我宁愿没有将源代码托管在docker-swarm 中的复杂性,所以我改用kubernetes(和@987654324 @就此而言)。

【讨论】:

  • 这也是我的情况:我使用docker service update my_service --image my-new-image 来更新群中的一些图像。一切正常,但卷,新卷,没有更新。超级奇怪,因为 mysql 卷从一开始就在工作。我需要停止集群 docker stack rm my_swarm 并使用 docker stack deploy 再次部署,直到我在主机中创建文件夹时才失败。
【解决方案2】:

您需要做的就是为您的卷指定正确的路径。您可以创建一个单独的文件并将其命名为docker-compose-production.yml

volumes:
  - /srv/data/www/:/var/www/

另外,请记住,对于生产系统,您希望使用 swarm 模式 (docker swarm init) 并使用 docker swarm deploy 应用 stach 更改。

:cached 选项仅适用于 OSX 系统,并且您很可能在生产中使用基于 linux 的操作系统。

【讨论】:

    【解决方案3】:

    尝试将其更改为:

    - $PWD:/var/www/:cached
    

    我认为您需要这里的完整路径

    【讨论】:

    • 刚试过 - 同样的问题。无论如何,它实际上是在部署期间映射了完整路径,问题是我在本地拥有的路径/home/john/valet/testapp/。远程主机上不存在。
    • $PWD 将根据本地目录而改变确保您在 docker-compose 中推送/拉取更改
    • 为什么要将整个$PWD 安装在cached 文件夹中,它包括/php-fpm/php7.2.ini 和其他位置中的所有文件夹.....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2021-12-25
    相关资源
    最近更新 更多