為python爬蟲docker鏡像添加nodejs環(huán)境實(shí)現(xiàn)方法
舊方法
過去會(huì)使用類似 curl -sL https://deb.nodesource.com/setup_16.x | bash - 這樣的方式添加 source 源,然后在使用 apt 安裝 nodejs
但是這個(gè)方法最近不行了,運(yùn)行會(huì)有警告
root@f51e70203b5b:/# curl -sL https://deb.nodesource.com/setup_16.x | bash -
================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================
SCRIPT DEPRECATION WARNING
This script, located at https://deb.nodesource.com/setup_X, used to
install Node.js is deprecated now and will eventually be made inactive.
Please visit the NodeSource distributions Github and follow the
instructions to migrate your repo.
https://github.com/nodesource/distributions
The NodeSource Node.js Linux distributions GitHub repository contains
information about which versions of Node.js and which Linux distributions
are supported and how to install it.
https://github.com/nodesource/distributions
SCRIPT DEPRECATION WARNING
================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================
TO AVOID THIS WAIT MIGRATE THE SCRIPT
Continuing in 60 seconds (press Ctrl-C to abort) ...
^C大概意思就是,這種方式已經(jīng) out了,nodejs 叫你別這么用了
nodejs最新推薦的方式是
https://github.com/nodesource/distributions#debian-versions

需要更多命令了,而且大家知道,因?yàn)椤感皭洪L城」的存在,這非常不適合大陸寶寶
缺點(diǎn)
- 網(wǎng)絡(luò)問題,不適合大陸寶寶
- 變來變?nèi)?,早晚要吃?/li>
那么有沒有更加適合大陸寶寶并且更加永恒不變的打包安裝 nodejs 方式呢?
當(dāng)然有
因?yàn)?python 的 docker 鏡像是基于 debian 打包的
debian 的倉庫里面就有 nodejs

但是別選 buster (debian10),因?yàn)檫@款遠(yuǎn)古時(shí)期的 debian 10 buster 倉庫里面的 nodejs 是 12 版本的,狗見了都搖頭
建議選擇 bookworm ,也就是 debian12 的,熱乎,今年剛發(fā)布。倉庫里面帶的 nodejs 版本是 18,很新鮮
Dockerfile 示例
FROM python:3.10.13-bookworm # 改變pip緩存目錄 # RUN pip config set global.cache-dir /pip/cache # 使用 aliyun 內(nèi)網(wǎng)鏡像源 # RUN (echo "deb http://mirrors.cloud.aliyuncs.com/debian/ buster main non-free contrib" > /etc/apt/sources.list) RUN (apt-get update) && (apt-get upgrade -y) # 安裝依賴工具,default-libmysqlclient-dev 是 mysqlclient 的依賴 RUN (apt-get install -y vim wget httpie netcat-openbsd htop curl gcc make g++ default-libmysqlclient-dev) # 安裝 node 環(huán)境 RUN (apt install -y nodejs npm) && (npm install -g crypto-js @babel/core @babel/cli @babel/preset-env)
當(dāng)然,上面的 還沒有把 apt 鏡像源換成大陸的
說更加完整的是下面這樣
FROM python:3.11.5-bookworm # 為什么要?jiǎng)h除這些東西? 參考:[為什么我把 debian12 的 apt 源替換為上海交大之后,還會(huì)連接 debian 官方源?](https://segmentfault.com/q/1010000044193707) RUN rm -rf /etc/apt/sources.list.d/* RUN echo "deb http://mirror.sjtu.edu.cn/debian bookworm main non-free contrib" > /etc/apt/sources.list RUN (apt-get update) && (apt-get upgrade -y) # 安裝依賴工具,default-libmysqlclient-dev 是 mysqlclient 的依賴 RUN (apt-get install -y vim wget httpie netcat-openbsd htop curl gcc make g++ default-libmysqlclient-dev) # 安裝 node 環(huán)境 RUN (apt install -y nodejs npm) && (npm install -g crypto-js @babel/core @babel/cli @babel/preset-env)
小結(jié)
- 要用 debian12,也就是 bookworm。不建議用 debian10 和debian11,因?yàn)樗麅勺詭У亩际?nodejs12,太古老了,毫無意義。
- 而 debian12 的 nodejs18 足夠 hold 大多數(shù)場景
- 記得替換 apt 換為大陸的,不然在大陸的你,受不了
以上就是為python爬蟲docker鏡像添加nodejs環(huán)境實(shí)現(xiàn)方法的詳細(xì)內(nèi)容,更多關(guān)于python docker鏡像nodejs環(huán)境的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python使用Pandas讀取CSV文件數(shù)據(jù)的操作方法
Pandas?是?Python?中一個(gè)強(qiáng)大的數(shù)據(jù)分析庫,它提供了大量的工具用于數(shù)據(jù)操作和分析,其中,read_csv?函數(shù)是?Pandas?中最常用的函數(shù)之一,用于從?CSV?文件中讀取數(shù)據(jù),本文將詳細(xì)介紹?read_csv?的基本用法,常見問題及其解決方案,并通過代碼案例進(jìn)行說明2024-12-12
Django使用django-simple-captcha做驗(yàn)證碼的實(shí)現(xiàn)示例
這篇文章主要介紹了Django使用django-simple-captcha做驗(yàn)證碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
基于Python+PyQt5開發(fā)一個(gè)AI智能截圖解答工具
這篇文章主要介紹了基于Python+PyQt5開發(fā)一個(gè)AI智能截圖解答工具,它可以隨時(shí)在屏幕上框選任意區(qū)域,自動(dòng)識(shí)別截圖里的內(nèi)容,然后直接給出 AI 解答或解釋,需要的朋友可以參考下2025-11-11
Python使用selenium + headless chrome獲取網(wǎng)頁內(nèi)容的方法示例
這篇文章主要介紹了Python使用selenium + headless chrome獲取網(wǎng)頁內(nèi)容的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Python樹莓派學(xué)習(xí)筆記之UDP傳輸視頻幀操作詳解
這篇文章主要介紹了Python樹莓派學(xué)習(xí)筆記之UDP傳輸視頻幀操作,結(jié)合實(shí)例形式詳細(xì)分析了Python樹莓派編程中使用UDP協(xié)議進(jìn)行視頻幀傳輸?shù)南嚓P(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-11-11
Python可視化學(xué)習(xí)之matplotlib內(nèi)置單顏色
這篇文章主要為大家介紹了Python matplotlib中支持的顏色格式及內(nèi)置的單顏色色號(hào)的匯總,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-02-02

