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

安装Jenkins的AWS EC2实例执行Maven构建时失联问题排查

问题描述

在基于RedHat系统的AWS EC2实例上,通过docker-compose部署Jenkins,安全组已开放全部HTTP和SSH流量。执行简单测试任务时,Jenkins可正常从GitHub拉取代码并执行Jenkinsfile中的Shell命令;但启动包含Maven构建的任务后,EC2实例彻底无法访问——本地终端SSH连接失败,AWS Connect也无法连接。AWS控制台显示实例状态为“健康”,重启实例也无法解决问题。

已确认jenkins_home目录已创建,尝试过将$PWD替换为绝对路径,且Jenkins能正常拉取GitHub代码,因此排除安全组问题。希望找出该问题的根本原因,而非直接更换Jenkins安装方式。

原docker-compose.yml配置如下:

version: '3'
services:
  jenkins:
    container_name: jenkins
    image: jenkins/jenkins
    ports: 
      - "80:8080"
    volumes: 
      - "$PWD/jenkins_home:/var/jenkins_home"
    networks:
      - net 
networks:
  net: 
问题原因与解决方案

经排查,问题根源是EC2实例资源耗尽:物理内存不足且未配置Swap空间。Swap是物理内存耗尽时可临时使用的磁盘空间,配置后可有效缓解内存压力,避免实例因内存占满而失去响应。

诊断流程

  1. 登录Jenkins后台,依次进入Manage Jenkins > Manage Nodes and Clouds,查看Built-In Node的Free Swap Space,若显示为0,说明要么宿主机未配置Swap,要么Docker中Jenkins以非特权模式运行,无法访问宿主机的Swap空间。
  2. 检查宿主机Swap配置:
    执行以下命令:
free | grep -i Swap

若输出为Swap: 0 0 0,说明宿主机未配置Swap;也可直接执行swapon命令查看Swap状态。

解决步骤

1. 为宿主机配置Swap文件

sudo fallocate -l 2G /swapfile # 可根据实例规格替换2G为合适的大小
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo vi /etc/fstab
# 在文件末尾添加一行,确保Swap开机自动挂载
/swapfile swap swap defaults 0 0
# 验证Swap配置是否生效
sudo free -h

2. 更新docker-compose.yml配置

确保Jenkins服务开启特权模式,以下是完整的配置示例:

version: "3.8"
services:
  jenkins:
    image: jenkins/jenkins:lts
    privileged: true
    user: root
    ports:
      - 8080:8080
      - 50000:50000
    container_name: jenkins
    volumes:
      - /home/ec2-user/jenkins_compose/jenkins_configuration:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
  agent:
    image: jenkins/ssh-agent:jdk11
    privileged: true
    user: root
    container_name: agent
    expose:
      - 22
    environment:
      - JENKINS_AGENT_SSH_PUBKEY=你的SSH连接公钥

3. 重启Docker容器

sudo docker compose down 
# 若使用旧版Docker,执行 sudo docker-compose down
sudo docker compose up -d

内容的提问来源于stack exchange,提问作者nikiforov.java

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:42:53