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

GitHub Actions Ubuntu Jammy Runner无法访问ports.ubuntu.com的解决方案咨询

GitHub Actions Ubuntu Jammy Runner无法访问ports.ubuntu.com的解决方案咨询

遇到这种在GitHub Actions构建ARM64等非AMD64架构容器时,无法连接ports.ubuntu.com的问题,我给你几个可行的解决思路:

1. 切换到HTTPS协议访问源

目前你的日志里用的是HTTP(80端口),尝试把Dockerfile里的源地址从http://ports.ubuntu.com/ubuntu-ports改成https://ports.ubuntu.com/ubuntu-ports,很多时候HTTPS端口(443)的访问限制会比HTTP宽松,说不定能绕过当前的连接问题。

2. 替换为其他Ubuntu官方镜像源

如果ports.ubuntu.com确实对GitHub Actions的IP段做了限制,可以考虑改用其他支持多架构包的Ubuntu镜像源。比如把源地址替换成http://archive.ubuntu.com/ubuntu(这个源同样包含多架构的软件包),或者在Dockerfile里修改源配置:

RUN sed -i 's/ports.ubuntu.com/archive.ubuntu.com/g' /etc/apt/sources.list

3. 预先构建基础镜像减少源依赖

你可以在本地或者另一个不受IP限制的环境中,预先构建好包含所有需要依赖的基础镜像,推送到Docker Hub或者GitHub Container Registry,然后在GitHub Actions的构建流程中直接使用这个预制镜像,避免每次构建都去拉取ports.ubuntu.com的包。

4. 向Ubuntu基础设施团队反馈问题

正如你提到的,GitHub Actions的runner IP范围可以通过官方API获取,你可以向Ubuntu的基础设施维护团队提交反馈,说明GitHub Actions runner无法访问ports.ubuntu.com的情况,并提供对应的IP范围,请求他们解除限制或者调整防火墙规则。

5. 添加重试机制临时缓解

如果是偶发的网络波动或者临时限流,可以在GitHub Actions步骤中添加重试逻辑,比如给构建步骤设置重试次数:

- name: Build container
  uses: docker/build-push-action@v5
  with:
    context: .
    platforms: linux/arm64
  env:
    DOCKER_BUILDKIT: 1
  retry: 3

不过这个方法只是临时缓解,不能解决根本的IP限制问题。


备注:内容来源于stack exchange,提问作者Clémence

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 15:33:08