小编Mag*_*nus的帖子

无法找到用户root:Docker中的passwd文件中没有匹配的条目

我有多个Atlassian产品的容器; JIRA,BitbucketConfluence.当我试图访问我经常使用的运行容器时:

docker exec -it -u root ${DOCKER_CONTAINER} bash
Run Code Online (Sandbox Code Playgroud)

使用此命令,我可以像往常一样访问,但在运行脚本来提取和压缩日志文件后,我再也无法访问该容器了.

摘自'清理脚本'

这是第一个失败点,脚本每周运行一次(由Jenkins安排).

docker cp ${CLEAN_UP_SCRIPT} ${DOCKER_CONTAINER}:/tmp/${CLEAN_UP_SCRIPT}
if [ $? -eq 0 ]; then
  docker exec -it -u root ${DOCKER_CONTAINER} bash -c "cd ${LOG_DIR} && /tmp/compressOldLogs.sh ${ARCHIVE_FILE}"
fi
Run Code Online (Sandbox Code Playgroud)

当脚本向Bitbucket容器执行这两行时,结果是:

unable to find user root: no matching entries in passwd file
Run Code Online (Sandbox Code Playgroud)

它在'docker cp'命令上失败了,但只在Bitbucket容器上失败了.脚本运行后,使用'bitbucket'(在Dockerfile中定义)和'root'用户都无法访问容器.

我能够复制/etc/passwd出容器,它按预期包含所有用户.当尝试通过uid访问时,我收到以下错误:

rpc error: code = 2 desc = oci runtime error: exec failed: process_linux.go:75: starting setns process caused "fork/exec /proc/self/exe: no such …
Run Code Online (Sandbox Code Playgroud)

bitbucket jenkins docker docker-compose

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

bitbucket ×1

docker ×1

docker-compose ×1

jenkins ×1