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

Portainer部署Docker Compose报build path not found错误

问题根因

path not found报错和宿主机上源码文件是否存在无直接关联,核心是两个问题叠加导致:

  • Compose配置语法错误:build字段直接填写Dockerfile文件路径是无效写法,该字段默认接收构建上下文目录路径,如果要指定非默认名称的Dockerfile,需要通过子字段单独声明
  • Portainer路径逻辑差异:Portainer本身以容器形式运行,Stack部署流程的compose解析动作是在Portainer容器内部执行,你填写的/opt/fritzbox-metrics是宿主机路径,默认没有被挂载进Portainer容器内部,容器内自然找不到对应路径。之前尝试添加-f参数无法解决问题,因为该参数作用是指定compose文件位置,和构建上下文路径无关。

补充:项目提供的原始Compose确实存在语法错误,错将服务配置写在了networks层级下,属于无效配置,你修正services层级的操作没有问题。

解决方案

二选一即可,优先推荐方案1,配置更简单不会出现权限类衍生问题。

方案1:宿主机提前构建镜像(推荐)

不需要修改Portainer原有配置,直接避开构建路径问题:

  1. 进入宿主机源码目录,手动构建本地镜像:
cd /opt/fritzbox-metrics
sudo docker build -t fritzbox-metrics:local .
  1. 回到Portainer Stack编辑页面,将原配置中的build字段替换为image字段调用本地构建好的镜像,最终可用配置如下:
version: "3.3"
services:
  fritzbox-metrics:
    image: fritzbox-metrics:local
    container_name: fritzbox-metrics
    environment:
      - FRITZ_ADDRESS=192.168.99.1
      - FRITZ_USERNAME=user
      - FRITZ_PASSWORD=topsecret
      - FRITZ_USE_TLS=True
      - TELEGRAF_HOSTNAME=192.168.99.4
      - TELEGRAF_PORT=8094
      - SAMPLE_PERIOD=10
    restart: unless-stopped
  1. 直接点击部署即可正常启动容器。

方案2:挂载目录保留Stack内构建流程

如果需要保留Stack部署时自动构建镜像的能力,按以下步骤调整:

  1. 停止现有Portainer容器,重新启动时添加宿主机源码目录的挂载,将/opt/fritzbox-metrics映射到Portainer容器内部同路径,参考启动命令:
sudo docker run -d -p 9000:9000 -p 9443:9443 \
  --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  -v /opt/fritzbox-metrics:/opt/fritzbox-metrics \
  portainer/portainer-ce:latest
  1. 修正Compose文件中build字段的语法,正确写法如下:
version: "3.3"
services:
  fritzbox-metrics:
    build:
      context: /opt/fritzbox-metrics
      dockerfile: Dockerfile
    container_name: fritzbox-metrics
    environment:
      - FRITZ_ADDRESS=192.168.99.1
      - FRITZ_USERNAME=user
      - FRITZ_PASSWORD=topsecret
      - FRITZ_USE_TLS=True
      - TELEGRAF_HOSTNAME=192.168.99.4
      - TELEGRAF_PORT=8094
      - SAMPLE_PERIOD=10
    restart: unless-stopped
  1. 重新部署Stack即可正常完成构建和启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 01:30:27