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

Ubuntu下Docker构建miniflux报go权限拒绝与/pkg非目录错误

Miniflux Debian 安装包 Docker 构建报错修复

问题根因说明

构建过程一共存在三类问题,分别对应不同的报错:

  1. 开头的/bin/sh: 1: go: Permission denied是宿主机执行make解析变量时,root用户环境下找不到本地go二进制导致的提示,不影响容器内的实际构建流程。
  2. 连接VPN时构建卡住是Docker网络路由和VPN规则冲突,叠加Debian官方源海外访问速度慢导致的网络问题,不属于权限错误。
  3. 最终构建失败的核心报错cp: cannot create regular file '/pkg/': Not a directory是挂载路径冲突导致:如果宿主机项目根目录下存在名为pkg的普通文件(而非目录),Docker挂载时会直接将容器内的/pkg路径覆盖为这个普通文件,导致后续复制deb包时目标路径不是目录,写入失败。

具体修复步骤

1. 修复挂载路径冲突

首先在项目根目录执行命令清理冲突文件,创建独立的输出目录:

# 删除可能存在的同名冲突文件
rm -f ./pkg
# 创建专门存放deb安装包的输出目录,避免重名冲突
mkdir -p ./deb-output

然后修改项目根目录Makefile中debian目标的docker run配置,将原来挂载整个项目目录的逻辑改为只挂载输出目录:
找到以下原有配置:

@ docker run --rm \
    -v ${PWD}:/pkg $(DEB_IMG_ARCH)/miniflux-deb-builder

替换为:

@ docker run --rm \
    -v ${PWD}/deb-output:/pkg $(DEB_IMG_ARCH)/miniflux-deb-builder

2. 配置容器内目录权限

修改packaging/debian/Dockerfile,在执行构建脚本前提前创建/pkg目录并配置写入权限,避免基础镜像内不存在该路径的问题,在原有两行chmod配置后新增一行:

RUN ["chmod", "+x", "/src/packaging/debian/build.sh"]
RUN ["chmod", "+x", "/src/packaging/debian/miniflux.postinst"]
# 新增以下行
RUN mkdir -p /pkg && chmod 777 /pkg

CMD ["/src/packaging/debian/build.sh"]

3. 消除宿主机go权限提示

这个提示不影响构建,要彻底消除可以将当前用户加入docker用户组,后续无需用sudo执行make命令:

sudo usermod -aG docker $USER

执行完成后注销当前用户重新登录,后续直接执行make debian即可,不需要加sudo,也不会再出现go命令权限报错。

4. 优化VPN环境下的构建网络

如果开VPN时apt下载包速度慢、容易卡住,可以修改Dockerfile将Debian源替换为国内镜像源,在apt更新命令前新增源替换配置:
找到原有apt安装命令的开头:

RUN apt-get update -q && \
    apt-get install -y -qq build-essential devscripts dh-make dh-systemd && \
    mkdir -p /build/debian

替换为:

# 替换为国内apt源
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \
    sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \
    apt-get update -q && \
    apt-get install -y -qq build-essential devscripts dh-make dh-systemd && \
    mkdir -p /build/debian

验证构建

所有修改完成后,执行以下命令重新构建:

make clean
make debian

构建成功后,生成的deb安装包会存放在项目根目录的deb-output文件夹下。

注:构建过程中出现的warning: the authors of lintian do not recommend running it with root privileges!是正常提示,不影响安装包的生成和使用,可以忽略。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 01:30:45