【问题标题】:Debian 11 Update broke samueldebruyn/debian-git?Debian 11 更新破坏了 samueldebruyn/debian-git?
【发布时间】:2021-10-17 14:44:01
【问题描述】:

我在运行 yaml 脚本的 Bitbucket Pipelines 上有一个暂存和生产服务器设置;

          image: samueldebruyn/debian-git
          name: Staging - Upload FTP
          script:
            - apt-get update
            - apt-get -qq install git-ftp
            - git ftp push --user $FTP_USERNAME --passwd $FTP_PASSWORD -v ftp://$FTP_HOST/$FTP_STAGING_PATH
            - echo "Completed upload"

此脚本运行良好,并以相同格式在线广泛用于其他使用管道的人。

我在 Debian 11 发布成功构建之前 5-10 分钟提交到我的暂存服务器,然后发布 Debian 11 Release 所有后续版本我推送到暂存,或者生产导致构建失败并出现以下错误...

Ign:1 http://security.debian.org/debian-security stable/updates InRelease
Get:2 http://deb.debian.org/debian stable InRelease [113 kB]
Err:3 http://security.debian.org/debian-security stable/updates Release
  404  Not Found [IP: 151.101.250.132 80]
Get:4 http://deb.debian.org/debian stable-updates InRelease [40.1 kB]
Get:5 http://deb.debian.org/debian stable/main amd64 Packages [8178 kB]
Reading package lists...
E: The repository 'http://security.debian.org/debian-security stable/updates Release' does not have a Release file.

是我遗漏了什么,还是 Debian 11 只是破坏了很多管道?!

或者samueldebruyn/debian-git 现在已经过时了吗?

【问题讨论】:

  • 在您的 apt/sources.list 中尝试 http://security.debian.org/debian-security stable-security Release
  • 我正在拉图片? samueldebruyn/debian-git 的 git repo 不再是可以依赖的有效 repo 了吗?
  • 泊坞窗图像?如果是这样,图像似乎有一个损坏的 sources.list。
  • 由于 docker 文件使用“未版本化”的基础镜像 (debian:stable-slim) 并且 stable-slim 在前几天发布到 debian 11,因此该镜像得到了很多更新可能没有准备好。它可能应该被锁定到 debian 10 slim,在那里它被测试并工作,直到 debian 11 的问题被解决。
  • 也就是说,您看到的 repo 消息是一个警告,本身不应该破坏任何东西。问题是使用 apt 无法正确提取任何安全更新。

标签: debian bitbucket pipeline bitbucket-pipelines


【解决方案1】:

TL;DR;尚未为 Debian 11 重新生成 docker hub 上的稳定映像,但安全存储库更改了布局。稳定 docker 映像的下一次重建应该是基于 Debian 11 的,这应该可以解决问题。

--- 详情---

看来stablestable-slim 标签目前在 docker hub 上有点损坏。

对于 Debian 10 及更早版本,repo 使用子目录结构 {RELEASE}/updates 来包含安全更新;

> docker run -it --rm debian:buster-slim egrep '(/se.*security)' /etc/apt/sources.list
deb http://security.debian.org/debian-security buster/updates main

对于 Debian 11,它改为使用名为 {RELEASE}-security 的目录

> docker run -it --rm debian:bullseye-slim egrep '(/se.*security)' /etc/apt/sources.list
deb http://security.debian.org/debian-security bullseye-security main

stable 的问题在于映像仍然是 Debian 10 并且需要 stable/updates,而 repo 现在使用 Debian 11 样式 stable-security。当镜像拉取安全更新时,它会失败,因为新结构的目录不再存在。

> docker run -it --rm debian:stable-slim egrep '(/se.*security)' /etc/apt/sources.list
deb http://security.debian.org/debian-security stable/updates main

由于下一个稳定镜像的构建应该是基于 Debian 11,问题应该很快就会解决,但是如果你想在新的构建可用之前使用失败的 docker 文件,请使用 buster-slim 或 Bullseye- slim(两者都运行良好)而不是 stable-slim。

【讨论】:

  • 这个答案发布于 2021 年 8 月,现在是 2021 年 12 月,目前尚不清楚预计多久会发生变化。似乎 Debian 11 暂时完全崩溃了。我不是为了让 Docker 容器正确构建而弄乱“安全”设置
【解决方案2】:

我能够找到一个 docker 映像,该映像具有传递构建所需的更改。对于遇到此问题并需要快速修复直到 Sam 更新他的 docker 映像的用户,请参阅

bitnami/git

【讨论】:

  • 谢谢,这对我有用。在 Sam 更新图像之前,您是什么意思?我们为什么不保留这个?
  • @Elyor 我将把 bitnami 保留在个人托管仓库中,因为他们更有可能维护导致下游问题的上游包。
【解决方案3】:

添加

sudo sed -i 's/stable\/updates/stable-security/g' /etc/apt/sources.list

在 'apt-get update' 解决问题之前的 docker 文件,并且在图像修复后应该是良性的(尽管应该恢复)

例如

FROM debian:stable-slim

RUN \
  sed -i 's/stable\/updates/stable-security/g' /etc/apt/sources.list && \
  apt-get update && \
  ...

【讨论】:

    【解决方案4】:

    在您的 bitbucket-pipelines.yml 上将 docker 映像替换为以下内容

    image: bitnami/git
    

    【讨论】:

    • 这是最简单的解决方案。谢谢!
    • 我是 debian-git 镜像的创建者,我不建议再使用它。在我创建它的时候,没有很多替代品。我没有时间维护这样的形象,所以bitname/gitalpine/git 是不错的选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多