为python爬虫docker镜像添加nodejs环境实现方法

 更新时间:2023年09月12日 08:38:09   作者:ponponon  
这篇文章主要为大家介绍了为python爬虫docker镜像添加nodejs环境实现方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

旧方法

过去会使用类似 curl -sL https://deb.nodesource.com/setup_16.x | bash - 这样的方式添加 source 源,然后在使用 apt 安装 nodejs

但是这个方法最近不行了,运行会有警告

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

大概意思就是,这种方式已经 out了,nodejs 叫你别这么用了

nodejs最新推荐的方式是

https://github.com/nodesource/distributions#debian-versions

需要更多命令了,而且大家知道,因为「邪恶长城」的存在,这非常不适合大陆宝宝

缺点

  • 网络问题,不适合大陆宝宝
  • 变来变去,早晚要吃亏

那么有没有更加适合大陆宝宝并且更加永恒不变的打包安装 nodejs 方式呢?

当然有

因为 python 的 docker 镜像是基于 debian 打包的

debian 的仓库里面就有 nodejs

但是别选 buster (debian10),因为这款远古时期的 debian 10 buster 仓库里面的 nodejs 是 12 版本的,狗见了都摇头

建议选择 bookworm ,也就是 debian12 的,热乎,今年刚发布。仓库里面带的 nodejs 版本是 18,很新鲜

Dockerfile 示例

FROM python:3.10.13-bookworm
# 改变pip缓存目录
# RUN pip config set global.cache-dir /pip/cache
# 使用 aliyun 内网镜像源
# 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 环境
RUN (apt install -y nodejs npm) && (npm install -g crypto-js @babel/core @babel/cli @babel/preset-env)

当然,上面的 还没有把 apt 镜像源换成大陆的

说更加完整的是下面这样

FROM python:3.11.5-bookworm
# 为什么要删除这些东西? 参考:[为什么我把 debian12 的 apt 源替换为上海交大之后,还会连接 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 环境
RUN (apt install -y nodejs npm) && (npm install -g crypto-js @babel/core @babel/cli @babel/preset-env)

小结

  • 要用 debian12,也就是 bookworm。不建议用 debian10 和debian11,因为他两自带的都是 nodejs12,太古老了,毫无意义。
  • 而 debian12 的 nodejs18 足够 hold 大多数场景
  • 记得替换 apt 换为大陆的,不然在大陆的你,受不了

以上就是为python爬虫docker镜像添加nodejs环境实现方法的详细内容,更多关于python docker镜像nodejs环境的资料请关注脚本之家其它相关文章!

相关文章

  • Pytorch-LSTM输入输出参数方式

    Pytorch-LSTM输入输出参数方式

    这篇文章主要介绍了Pytorch-LSTM输入输出参数方式,具有很好的参考价值,希望对大家有所帮助。
    2022-07-07
  • Python使用Pandas读取CSV文件数据的操作方法

    Python使用Pandas读取CSV文件数据的操作方法

    Pandas 是 Python 中一个强大的数据分析库,它提供了大量的工具用于数据操作和分析,其中,read_csv 函数是 Pandas 中最常用的函数之一,用于从 CSV 文件中读取数据,本文将详细介绍 read_csv 的基本用法,常见问题及其解决方案,并通过代码案例进行说明
    2024-12-12
  • Python日志:自定义输出字段 json格式输出方式

    Python日志:自定义输出字段 json格式输出方式

    这篇文章主要介绍了Python日志:自定义输出字段 json格式输出方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python实现队列的方法

    Python实现队列的方法

    这篇文章主要介绍了Python实现队列的方法,实例分析了Python实现队列的相关技巧,需要的朋友可以参考下
    2015-05-05
  • Django使用django-simple-captcha做验证码的实现示例

    Django使用django-simple-captcha做验证码的实现示例

    这篇文章主要介绍了Django使用django-simple-captcha做验证码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 基于Python+PyQt5开发一个AI智能截图解答工具

    基于Python+PyQt5开发一个AI智能截图解答工具

    这篇文章主要介绍了基于Python+PyQt5开发一个AI智能截图解答工具,它可以随时在屏幕上框选任意区域,自动识别截图里的内容,然后直接给出 AI 解答或解释,需要的朋友可以参考下
    2025-11-11
  • Python使用selenium + headless chrome获取网页内容的方法示例

    Python使用selenium + headless chrome获取网页内容的方法示例

    这篇文章主要介绍了Python使用selenium + headless chrome获取网页内容的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Python树莓派学习笔记之UDP传输视频帧操作详解

    Python树莓派学习笔记之UDP传输视频帧操作详解

    这篇文章主要介绍了Python树莓派学习笔记之UDP传输视频帧操作,结合实例形式详细分析了Python树莓派编程中使用UDP协议进行视频帧传输的相关操作技巧与注意事项,需要的朋友可以参考下
    2019-11-11
  • python 批量将PPT导出成图片集的案例

    python 批量将PPT导出成图片集的案例

    这篇文章主要介绍了python 批量将PPT导出成图片集的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python可视化学习之matplotlib内置单颜色

    Python可视化学习之matplotlib内置单颜色

    这篇文章主要为大家介绍了Python matplotlib中支持的颜色格式及内置的单颜色色号的汇总,文中的示例代码讲解详细,需要的可以参考一下
    2022-02-02

最新评论