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

Jenkins部署于EC2 Linux实例中构建Docker镜像失败求助

解决Docker构建中apt update && apt install maven -y报错exit code 100的问题

常见原因及修复步骤

1. 基础镜像源访问异常

多数官方基础镜像(如Ubuntu、Debian)默认的apt源在EC2环境下可能存在访问延迟或失败的情况,直接导致apt update无法完成。

  • 修复方法:在Dockerfile中替换为AWS区域内或国内的镜像源,示例:
    # 针对Ubuntu镜像,替换为AWS区域源(以us-east-1为例)
    RUN sed -i 's/archive.ubuntu.com/us-east-1.ec2.archive.ubuntu.com/' /etc/apt/sources.list
    # 若使用国内环境,可替换为阿里云源
    # RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/' /etc/apt/sources.list
    RUN apt update && apt install maven -y
    

2. 基础镜像版本过旧

如果使用的是长期未更新的基础镜像,其内置的apt源地址可能已失效,引发更新失败。

  • 修复方法:将基础镜像更新为最新稳定版,比如把FROM ubuntu:18.04改为FROM ubuntu:22.04,或者提前拉取最新镜像:
    docker pull ubuntu:latest
    

3. EC2实例网络权限限制

EC2实例的安全组或VPC配置可能限制了出站流量,导致无法访问公网的apt源服务器。

  • 修复方法:
    • 检查安全组出站规则,确保允许TCP 80/443端口访问0.0.0.0/0。
    • 确认VPC路由表配置正确,实例可通过互联网网关或NAT网关访问公网。

4. apt锁文件残留

之前的apt操作异常终止可能残留锁文件,导致后续apt命令无法执行。

  • 修复方法:在Dockerfile中添加清理锁文件的步骤:
    RUN rm -rf /var/lib/apt/lists/* && rm /var/lib/dpkg/lock-frontend && rm /var/cache/apt/archives/lock
    RUN apt update && apt install maven -y
    

5. dpkg数据库损坏

基础镜像中的dpkg数据库可能存在损坏,导致apt install执行失败。

  • 修复方法:先修复dpkg再执行安装命令:
    RUN dpkg --configure -a && apt --fix-broken install -y
    RUN apt update && apt install maven -y
    

调试建议

拆分Dockerfile中的命令并查看详细日志,定位具体失败点:

RUN apt update -y -qq
RUN apt install maven -y -qq

构建时添加--progress=plain参数查看完整输出:

docker build --progress=plain -t your-image .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:33:12