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

Windows 10下Docker构建执行apt-get upgrade报403认证错误

解决PHP 5.6-Apache Docker镜像构建时apt-get upgrade 403错误的方案

问题根源

php:5.6-apache镜像基于Debian Stretch(9),该版本已终止所有官方支持,原有的deb.debian.org和security.debian.org源不再提供公开访问,因此下载升级包时返回403 authenticationrequired错误。

修复步骤

1. 切换到Debian存档源

修改Dockerfile,在apt-get update前替换apt源为Debian官方存档服务器,同时跳过过期源的有效性检查:

FROM php:5.6-apache

RUN set -x \
    # 替换Stretch系统源和安全源为存档地址
    && echo "deb http://archive.debian.org/debian stretch main contrib non-free" > /etc/apt/sources.list \
    && echo "deb http://archive.debian.org/debian-security stretch/updates main contrib non-free" >> /etc/apt/sources.list \
    # 跳过源的有效期验证(存档源签名已过期)
    && apt-get update -o Acquire::Check-Valid-Until=false \
    && apt-get upgrade -y

2. 推荐:移除不必要的upgrade操作

由于Debian Stretch已停止更新,apt-get upgrade不会获得任何安全补丁或功能更新,反而会增加镜像构建时间和体积。建议简化Dockerfile,仅替换源用于后续可能的扩展安装:

FROM php:5.6-apache

RUN set -x \
    && echo "deb http://archive.debian.org/debian stretch main contrib non-free" > /etc/apt/sources.list \
    && echo "deb http://archive.debian.org/debian-security stretch/updates main contrib non-free" >> /etc/apt/sources.list \
    && apt-get update -o Acquire::Check-Valid-Until=false

3. 企业网络代理排查

如果工作机处于企业内网,需确认Docker是否配置了正确的代理:

  • Docker Desktop用户可在设置中添加HTTP/HTTPS代理地址
  • 或在Dockerfile中临时注入代理环境变量:
    ENV http_proxy=http://your-proxy-host:port
    ENV https_proxy=http://your-proxy-host:port
    
    若代理需认证,格式为http://username:password@proxy-host:port

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:40:33