在AWS Elastic Beanstalk EC2上安装Redis时执行中断,请求解决建议
解决Elastic Beanstalk中安装redis-cli时
make命令卡住的问题 可能原因与对应解决方法
1. 编译依赖缺失
make进程停滞大概率是缺少编译redis-cli所需的基础依赖包,比如gcc、glibc开发库等。可以通过EB配置文件提前安装依赖:
- 在项目根目录创建
.ebextensions/redis-cli.config文件,写入以下内容:
packages: yum: gcc: [] make: [] glibc-devel: [] commands: 01_download_redis: command: "wget http://download.redis.io/redis-stable.tar.gz" 02_extract_redis: command: "tar xzf redis-stable.tar.gz" 03_compile_redis_cli: command: "cd redis-stable && make MALLOC=libc" 04_copy_redis_cli: command: "cp redis-stable/src/redis-cli /usr/local/bin/" 05_cleanup: command: "rm -rf redis-stable redis-stable.tar.gz"
注:
MALLOC=libc参数可规避jemalloc相关的编译依赖问题,这是导致make卡住的常见诱因。
2. 实例资源不足
低配EC2实例(如t2.micro)内存或CPU不足时,编译过程会因资源耗尽停滞。可通过两种方式缓解:
- 临时升级EB环境的实例类型至t2.small及以上,完成编译后再按需降级
- 在编译前创建swap分区补充内存,在
.ebextensions配置中添加:
commands: 00_create_swap: command: "fallocate -l 1G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile"
3. 改用预编译包跳过编译
如果不需要源码编译,可直接安装预编译的redis-cli包,以Amazon Linux 2为例:
packages: amazon-linux-extras: - install redis6
4. 排查部署权限与配置完整性
- 确认GitHub Action使用的AWS权限足够操作Elastic Beanstalk环境
- 检查
.ebextensions目录是否被.gitignore忽略,确保部署包包含完整配置
验证与排查技巧
部署完成后登录EC2实例,执行redis-cli --version确认安装状态;同时在EB控制台下载完整环境日志,查看make命令的具体错误输出,比截图更能精准定位问题。
内容的提问来源于stack exchange,提问作者minyeong
相关产品推荐
相关产品推荐

