[筆記] 因為 Debian Jessie 停止支援造成 Dockerfile 執行 apt update 出錯
這幾天使用舊版 Laradock 的時候,在 build 到 laradock/php-fpm 相關的 Dockerfile 後發生問題了。
隨便放一個圖當社群網站的預覽圖
錯誤訊息
當 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 姓名標示-相同方式分享 4.0 國際 授權條款釋出。