You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose长语法挂载卷时,主机不存在的目录无法自动创建

解决Docker Compose长语法挂载卷时自动创建主机目录的问题

你遇到的问题是Docker Compose长语法挂载bind卷时,不会自动创建主机上缺失的目标目录,而短语法原本支持这个特性。结合你的场景,有两个可行的解决办法:

方法1:启动前手动创建目录

在执行docker-compose up命令前,先手动创建需要的logs目录:

mkdir -p ./e2e/logs

这个方法简单直接,适合临时或手动部署的场景。

方法2:在Compose配置中启用自动创建主机路径

Docker Compose支持在长语法的bind挂载中添加create_host_path: true参数,开启后会自动检查并创建主机上不存在的源目录。修改后的配置如下:

version: "3.9"
services:
   foo:
      image: an_image
      volumes:
         - source: ./logs
           target: /tmp/data
           type: bind
           bind:
             create_host_path: true

这个参数在Compose文件版本3.4及以上可用,你的3.9版本完全兼容,且Docker Compose 2.24版本也支持该特性,刚好满足你的需求——既使用长语法规避bug,又实现自动创建目录的功能。

你当前的报错是因为主机上/Users/user/Workspace/an-app/e2e/logs路径不存在,使用上述任一方法都可以解决这个问题。

内容的提问来源于stack exchange,提问作者Niko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 03:47:45