[筆記] 因為 Debian Jessie 停止支援造成 Dockerfile 執行 apt update 出錯

這幾天使用舊版 Laradock 的時候,在 build 到 laradock/php-fpm 相關的 Dockerfile 後發生問題了。

enter image description here
隨便放一個圖當社群網站的預覽圖

錯誤訊息

當 Dockerfile 嘗試執行 apt update(或 apt-get update)時出現以下錯誤

W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages 404 Not Found
 
E: Some index files failed to download. They have been ignored, or old ones used instead.

原因:Jessie PPA 已封存

Debian 8(代號 Jessie)已經停止維護,官方套件庫(PPA)jessie 已經移至 archive.debian.org 封存,並且廢止 jessie-updates 套件庫(合併至jessie )。

jessie 會自動從 deb.debian.org 轉址到 archive.debian.org。但是由於 jessie-updates 已經廢除,產生 404 錯誤,連帶影響到 Docker 建置失敗。

以下是相關的資訊:
Removal of Wheezy and Jessie (except LTS) from mirrors

as Wheezy and Jessie have been integrated into the archive.debian.org structure recently, we are now removing all of Wheezy and all non-LTS architectures of Jessie from the mirror network starting today.

解決方案

將已廢止的 jessie-updates 從 sources.list 中移除:

RUN sed -i '/jessie-updates/d' /etc/apt/sources.list  # Now archived

原本的 /etc/apt/sources.list 內容如果是長這樣:

deb http://deb.debian.org/debian jessie main
deb http://deb.debian.org/debian jessie-updates main
deb http://security.debian.org jessie/updates main

執行以上指令後就會變成:

deb http://deb.debian.org/debian jessie main
deb http://security.debian.org jessie/updates main

Murmur

還是盡快升級比較好,很怕留下更多技術債啊!

參考資料



創用 CC 授權條款
本著作由小克製作,以創用CC 姓名標示-相同方式分享 4.0 國際 授權條款釋出。