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

构建Docker容器遇PostgreSQL源报错:无Release文件,求Dockerfile修改方案

解决Debian Jessie容器构建时PostgreSQL源失效问题

问题背景

构建Docker容器时触发APT源错误,原因是Debian Stretch版本已终止支持,对应的PostgreSQL官方源(stretch-pgdg)已被移除,导致apt-get update失败。

错误日志

W: The repository 'http://apt.postgresql.org/pub/repos/apt stretch-pgdg Release' does not have a Release file.
E: Failed to fetch http://apt.postgresql.org/pub/repos/apt/dists/stretch-pgdg/11/binary-amd64/Packages  404  Not Found [IP: 147.75.85.69 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.
ERROR: Service 'db' failed to build: The command '/bin/sh -c apt-get update &&     apt-get install dos2unix &&     apt-get clean' returned a non-zero code: 100

涉及的Dockerfile片段

FROM debian:jessie
MAINTAINER Open Knowledge

# Install required system packages
RUN apt-get -q -y update \
    && DEBIAN_FRONTEND=noninteractive apt-get -q -y upgrade \
    && apt-get -q -y install \
          curl \
        python-dev \
        python-pip \
        python-virtualenv \
        python-wheel \
        libpq-dev \
        libxml2-dev \
        libxslt-dev \
        libgeos-dev \
        libssl-dev \
        libxslt-dev \
        libgeos-dev \
        libssl-dev \
        libffi-dev \
        postgresql-client \
        build-essential \
        git-core \
        vim \
        wget \
    && apt-get -q clean \
    && apt-get install -y dos2unix

修改方案

1. 替换为Debian归档源

Debian Jessie已停止官方支持,需将系统源切换至归档服务器,同时移除失效的PostgreSQL官方源:

在apt-get update前添加源替换命令,修改后的RUN指令如下:

RUN echo "deb http://archive.debian.org/debian/ jessie main contrib non-free" > /etc/apt/sources.list \
    && echo "deb http://archive.debian.org/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list \
    && rm -f /etc/apt/sources.list.d/pgdg.list 2>/dev/null \
    && apt-get -q -y update \
    && DEBIAN_FRONTEND=noninteractive apt-get -q -y upgrade \
    && apt-get -q -y install \
          curl \
        python-dev \
        python-pip \
        python-virtualenv \
        python-wheel \
        libpq-dev \
        libxml2-dev \
        libxslt-dev \
        libgeos-dev \
        libssl-dev \
        libxslt-dev \
        libgeos-dev \
        libssl-dev \
        libffi-dev \
        postgresql-client \
        build-essential \
        git-core \
        vim \
        wget \
    && apt-get -q clean \
    && apt-get install -y dos2unix

2. 优化镜像构建(可选)

将单独的dos2unix安装命令合并到前面的安装列表中,减少镜像层并避免重复操作:

FROM debian:jessie
MAINTAINER Open Knowledge

# Install required system packages
RUN echo "deb http://archive.debian.org/debian/ jessie main contrib non-free" > /etc/apt/sources.list \
    && echo "deb http://archive.debian.org/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list \
    && rm -f /etc/apt/sources.list.d/pgdg.list 2>/dev/null \
    && apt-get -q -y update \
    && DEBIAN_FRONTEND=noninteractive apt-get -q -y upgrade \
    && apt-get -q -y install \
          curl \
        python-dev \
        python-pip \
        python-virtualenv \
        python-wheel \
        libpq-dev \
        libxml2-dev \
        libxslt-dev \
        libgeos-dev \
        libssl-dev \
        libffi-dev \
        postgresql-client \
        build-essential \
        git-core \
        vim \
        wget \
        dos2unix \
    && apt-get -q clean

说明

  • 切换到归档源后,系统会从Debian官方归档服务器拉取Jessie版本的软件包,包括适配的postgresql-client版本,无需依赖已失效的PostgreSQL官方源。
  • 移除pgdg.list文件是为了彻底清除可能自动添加的PostgreSQL第三方源配置,避免再次触发错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:25:19