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

Azure Pipeline构建Docker容器失败:无法获取Ubuntu软件包

问题:Azure Pipeline构建Docker镜像时无法连接Ubuntu软件源

报错信息

E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-libc-dev_5.4.0-137.154_amd64.deb  Unable to connect to archive.ubuntu.com:http: [IP: 185.125.190.39 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Fetched 8,100 kB in 7min 33s (17.9 kB/s)
The command '/bin/sh -c apt-get upgrade -y' returned a non-zero code: 100
##[error]The command '/bin/sh -c apt-get upgrade -y' returned a non-zero code: 100

本地正常但Azure构建失败的Dockerfile内容

# example Dockerfile to expose a plumber service

FROM rocker/r-ver:4.1.2
RUN apt-get update -qq
RUN apt-get upgrade -y
RUN apt-get install -y curl

# Install required libraries
RUN apt-get install -y \
  libssl-dev \
  libcurl4-gnutls-dev \
  libsodium-dev \
  unixodbc-dev \
  r-cran-rodbc \
  libxml2-dev
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update
RUN ACCEPT_EULA=Y apt-get install -y msodbcsql18
RUN ACCEPT_EULA=Y apt-get install -y mssql-tools
RUN echo 'export PATH="$PATH:/opt/mssql-tools17/bin"' >> ~/.bash_profile
RUN echo 'export PATH="$PATH:/opt/mssql-tools17/bin"' >> ~/.bashrc
# install the required packages package
RUN R -e 'install.packages(c("dplyr", "devtools", "caret", "plumber", "readr", "yaml", "swagger", "RODBC"), dependencies = T)'
RUN R -e 'library(devtools)'
RUN R -e 'devtools::install_version(package = "xgboost", version = "1.6.0.1", repos = "https://cloud.r-project.org/")'


# Copy everything in current folder to Docker container
COPY / /
# Expose the port
EXPOSE 443
EXPOSE 80
EXPOSE 1433
# Run 
ENTRYPOINT ["Rscript", "model_expose.R"]

使用的Azure Pipeline配置(托管代理)

trigger:
- master

resources:
- repo: self

variables:
  # Container registry service connection established during pipeline creation
  dockerRegistryServiceConnection: <cnxn>
  imageRepository: <Image repo name>
  containerRegistry: <Azure container reg>
  dockerfilePath: '$(Build.SourcesDirectory)/tracking/4_docker_container/dockerfile'
  tag: '$(Build.BuildId)'
  DOCKER_BUILDKIT: 1

  # Agent VM image name
  vmImageName: 'ubuntu-latest'

stages:
- stage: Build
  displayName: Build and push stage
  jobs:
  - job: Build
    displayName: Build
    pool:
      vmImage: $(vmImageName)
    steps:
    - task: Docker@2
      displayName: Build and push an image to container registry
      inputs:
        command: buildAndPush
        repository: $(imageRepository)
        dockerfile: $(dockerfilePath)
        containerRegistry: $(dockerRegistryServiceConnection)
        tags: |
          $(tag)

解决方案

  • 移除不必要的apt-get upgrade -y步骤:rocker基础镜像的软件包已维护完善,强制升级易因网络波动或源同步问题失败。若确实需要更新,可替换为apt-get upgrade -y --fix-missing尝试自动修复,但更推荐直接跳过此步骤提升构建稳定性。

  • 更换Ubuntu软件源为国内镜像:在apt-get update前替换源,提升Azure托管代理的下载速度,避免连接超时。修改Dockerfile开头部分:

FROM rocker/r-ver:4.1.2
# 替换为阿里云Ubuntu源
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
RUN sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
RUN apt-get update -qq
# 后续步骤不变...
  • 合并APT命令并清理缓存:将多个apt-get命令合并,减少镜像层数量和网络交互次数,同时添加--no-install-recommends减少不必要的依赖安装,最后清理APT缓存减小镜像体积:
FROM rocker/r-ver:4.1.2
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
RUN sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
RUN apt-get update -qq && \
    apt-get install -y --no-install-recommends \
        curl \
        libssl-dev \
        libcurl4-gnutls-dev \
        libsodium-dev \
        unixodbc-dev \
        r-cran-rodbc \
        libxml2-dev && \
    rm -rf /var/lib/apt/lists/*
# 后续添加微软源等步骤...
  • 切换托管代理镜像版本:将Pipeline中的vmImageName从ubuntu-latest改为ubuntu-20.04,与rocker/r-ver:4.1.2的基础系统版本(Ubuntu 20.04)保持一致,减少环境兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:02:12