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

eclipse-temurin:17-alpine的Dockerfile本地构建正常,Azure Pipeline构建失败

Azure Pipeline构建ActiveMQ Docker镜像失败排查

问题概述

Azure Pipeline构建Docker镜像时,执行apk add curl步骤失败,提示找不到curl包;但在代理运行的同一服务器上手动执行docker build可成功完成构建,且自上次成功构建后未修改过Dockerfile。

构建错误日志

##[error]#5 [2/6] RUN apk add --update --no-cache curl &&     curl -l http://archive.apache.org/dist/activemq/5.17.4/apache-activemq-5.17.4-bin.tar.gz -o activemq.tar.gz &&     tar -xvf activemq.tar.gz &&     mv apache-activemq-5.17.4 /opt/ &&     rm activemq.tar.gz
...
Permission denied
##[error]#5 0.571 ERROR: unable to select packages:
##[error]#5 0.571   curl (no such package):
##[error]#5 0.571     required by: world[curl]
##[error]#5 ERROR: process "/bin/sh -c apk add --update --no-cache curl &&     curl -l http://archive.apache.org/dist/activemq/$ACTIVEMQ_VERSION/$ACTIVEMQ_NAME-bin.tar.gz -o activemq.tar.gz &&     tar -xvf activemq.tar.gz &&     mv $ACTIVEMQ_NAME /opt/ &&     rm activemq.tar.gz" did not complete successfully: exit code: 1

使用的Dockerfile内容

FROM eclipse-temurin:17-alpine

ENV ACTIVEMQ_VERSION 5.17.4
ENV ACTIVEMQ_NAME apache-activemq-$ACTIVEMQ_VERSION

EXPOSE 8161
EXPOSE 61616

RUN apk add --update --no-cache curl && \
    curl -l http://archive.apache.org/dist/activemq/$ACTIVEMQ_VERSION/$ACTIVEMQ_NAME-bin.tar.gz -o activemq.tar.gz && \
    tar -xvf activemq.tar.gz && \
    mv $ACTIVEMQ_NAME /opt/ && \
    rm activemq.tar.gz

WORKDIR /opt/$ACTIVEMQ_NAME
COPY activemq.xml .
COPY jetty.xml .

WORKDIR /opt/$ACTIVEMQ_NAME/bin

ENTRYPOINT ["./activemq","console"]

本地构建验证结果

~ docker build -t activemq:latest ./docker/activemq 
...
 => [2/6] RUN apk add --update --no-cache curl &&     curl -l http://archive.apache.org/dist/activemq/5.17.4/apache-activemq-5.17.4-bin.tar.gz -o activemq.tar.gz &&     tar -xvf  440.9s
 => [3/6] WORKDIR /opt/apache-activemq-5.17.4                                                                                                                                        0.0s 
 => [4/6] COPY activemq.xml .                                                                                                                                                        0.1s 
 => [5/6] COPY jetty.xml .                                                                                                                                                           0.0s 
 => [6/6] WORKDIR /opt/apache-activemq-5.17.4/bin                                                                                                                                    0.0s
 => exporting to image                                                                                                                                                               0.4s
 => => exporting layers                                                                                                                                                              0.4s
 => => writing image sha256:778721aca0caa1de9293b88a9c94fc180c5772522e7d5df6680dd5bb79075c36                                                                                         0.0s
 => => naming to docker.io/library/activemq:latest

可能的原因及解决方向

  • Alpine软件源访问异常:Azure Pipeline代理环境的网络无法正常连接Alpine默认软件源,导致找不到curl包。本地服务器网络不受限制可正常访问。解决方法:在apk add命令前替换为国内镜像源,例如:
    RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --update --no-cache curl && \
        # 后续原有命令...
    
  • Docker缓存问题:代理服务器上的eclipse-temurin:17-alpine基础镜像缓存过旧,或缓存的镜像源配置失效。解决方法:在Pipeline的docker build步骤中添加--no-cache参数,强制重新拉取基础镜像并构建。
  • 网络策略限制:Azure Pipeline所在网络存在防火墙或代理规则,阻止了对Alpine软件源和Apache归档服务器的访问。解决方法:测试代理服务器能否访问Alpine源地址(如http://dl-cdn.alpinelinux.org/alpine/v3.17/main)和ActiveMQ下载地址,若无法访问则需调整网络策略。
  • 权限连带错误:日志中的Permission denied可能是源访问失败的衍生错误,但可检查Pipeline执行账号是否拥有足够的Docker操作权限,确保其能正常拉取镜像、执行构建命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 17:36:07