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

Jenkins Pipeline使用img构建Docker镜像时出现nsenter错误

解决Jenkins中使用img构建Docker镜像时的nsenter: USER is unset错误

问题描述

已在Jenkins环境成功安装img(项目版本v0.5.11),安装命令如下:

sudo apt-get update -y \
 && sudo apt-get install -y uidmap \
 && echo "Downloading img" \
 && curl -fSL "https://github.com/genuinetools/img/releases/download/v0.5.11/img-linux-amd64" -o "/usr/local/bin/img" \
 && echo "cc9bf08794353ef57b400d32cd1065765253166b0a09fba360d927cfbd158088  /usr/local/bin/img" | sha256sum -c - \
 && chmod a+x "/usr/local/bin/img"

但通过Makefile执行镜像构建操作时,出现错误:

nsenter: USER is unset: Inappropriate ioctl for device

解决方法

1. 临时设置USER环境变量

在Jenkins构建步骤中,执行Makefile前先设置环境变量:

export USER=$(whoami)

或者直接在Makefile的构建目标中加入这行:

your-build-target:
	export USER=$(whoami) && img build -t your-image-tag .

2. 持久化配置USER变量

编辑Jenkins运行用户的环境配置文件(如~/.bashrc或~/.profile),添加:

export USER=jenkins

执行source ~/.bashrc加载配置,然后重启Jenkins服务使设置生效。

3. 通过sudo执行img命令

若Jenkins用户有sudo权限,可在Makefile中用sudo调用img:

build:
	sudo img build -t your-image .

为避免输入密码,通过visudo添加免密规则:

jenkins ALL=(ALL) NOPASSWD: /usr/local/bin/img

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:30:35