Docker Hub构建中间歇性的"chfn:PAM:系统错误"

 手机用户2602903963 发布于 2022-12-29 12:01

有时,Docker Hub上的自动构建会因PAM系统错误而失败,如下所示,这些错误来自两个独立的构建:

     Preparing to unpack 
    .../mysql-server-5.5_5.5.38-0ubuntu0.14.04.1_amd64.deb ... 
    [91mchfn: PAM: System error 
    [0m 
    [91madduser: '/usr/bin/chfn -f MySQL Server mysql' returned error code 
     1. Exiting.
    [0m
    [91mdpkg: error processing archive 
     /var/cache/apt/archives/mysql-server-5.5_5.5.38-0ubuntu0.14.04.1_amd64.deb 
    (--unpack):
     subprocess new pre-installation script returned error exit status 1
    [0m

     Preparing to unpack 
    .../redis-server_2%3a2.8.4-2_amd64.deb ... 
    [91mchfn: PAM: System error 
    [0m 
    [91madduser: '/usr/bin/chfn -f redis server redis' returned error code 
     1. Exiting. 
    [0m 
    [91mdpkg: error processing archive 
    /var/cache/apt/archives/redis-server_2%3a2.8.4-2_amd64.deb (--unpack): 
     subprocess new pre-installation script returned error exit status 1 
    [0m

有趣的是,这种失败只是间歇性地发生并且使用相同的Dockerfiles.有没有办法解决?

2 个回答
  • 有一个解决方法!这是一个简单的修复,似乎没有任何负面影响.将以下符号链接添加到Dockerfile的顶部:

    RUN ln -s -f /bin/true /usr/bin/chfn

    后续构建应该成功.

    2022-12-29 12:02 回答
  • 这是最近一些内核更新的结果(参见Github问题#6345)

    最近更新了内核以允许容器发送审计事件,但是他们需要CAP_AUDIT_WRITE才能编写审计事件.(git-bisect 用于跟踪这个错误

    之前,PAM检测到审核不可用/禁用(非致命错误).现在它可用,PAM检测到审计系统并尝试使用它,但无法编写审计事件(致命错误).

    可能的解决方案:

      允许容器具有CAP_AUDIT_WRITE(GitHub问题表明这将是默认设置),但DockerHub不允许其在构建系统中授予此功能.

      禁用PAM中的审核支持.有人发布了CentOS 6.5和Ubuntu 14.04的docker镜像来重建PAM并禁用审计.有关如何重建PAM的基本知识,您可以查看CentOS和Ubuntu的相关Dockerfiles )

      /usr/bin/chfn通过链接到/bin/true(ln -s -f /bin/true /usr/bin/chfn)禁用

    2022-12-29 12:04 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有