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

andrius/asterisk:alpine-20.5.2镜像构建时pjproject编译出错求助

Asterisk Alpine镜像构建失败(pjproject编译错误)

问题场景

使用andrius/asterisk:alpine-latest-20.5.2基础镜像,搭配自定义拨号计划和外呼AGI脚本,执行docker-compose时触发Asterisk构建报错,Node.js相关构建正常。错误核心为pjproject编译阶段失败:

133.4 [pjproject] Compiling libpj-x86_64-unknown-linux-gnu.a
134.1 make[2]: *** [Makefile:213: source/pjlib/lib/libpj-x86_64-unknown-linux-gnu.a] Error 2
134.1 make[1]: *** [Makefile:47: pjproject] Error 2
134.1 make: *** [Makefile:396: third-party] Error 2

failed to solve: process "/bin/sh -c cd /usr/src && curl -O https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz && tar -xzf asterisk-20-current.tar.gz && cd asterisk-20.* && ./configure --with-pjproject --without-bdb && make menuselect.makeopts && menuselect/menuselect --disable-category MENUSELECT_UTILS && make && make install && make samples && make config"
did not complete successfully: exit code: 2

解决办法

1. 直接复用预编译镜像(推荐)

既然已经使用现成的andrius/asterisk:alpine-latest-20.5.2镜像,无需重新下载编译Asterisk。修改Dockerfile,基于该镜像直接复制自定义文件:

# 以现成Asterisk镜像为基础
FROM andrius/asterisk:alpine-latest-20.5.2

# 复制自定义拨号计划
COPY ./extensions.conf /etc/asterisk/extensions.conf

# 复制外呼AGI脚本到指定目录
COPY ./your-outbound-agi-scripts/ /var/lib/asterisk/agi-bin/

# 给AGI脚本添加执行权限
RUN chmod +x /var/lib/asterisk/agi-bin/*

这种方式跳过编译步骤,彻底避免依赖缺失导致的编译错误。

2. 补全编译依赖(若必须自行编译)

如果一定要重新编译Asterisk,需先在镜像中安装pjproject及编译所需的依赖包,在构建步骤前添加:

RUN apk add --no-cache \
    build-base \
    linux-headers \
    openssl-dev \
    ncurses-dev \
    libxml2-dev \
    sqlite-dev \
    jansson-dev \
    libsrtp-dev \
    pjproject-dev

同时调整configure命令,让Asterisk使用系统安装的pjproject:

./configure --without-bdb --with-pjproject=/usr

内容的提问来源于stack exchange,提问作者Lawrence Makoro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 05:25:03