You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS 22.13.1-r0导致Alpine容器中Forgejo Action运行异常

解决Node.js启动时sqlite3符号缺失问题

问题原因

Node.js 22.13.1-r0版本依赖的SQLite3库包含sqlite3session_*这类新增符号,但你的alpine:3.21.2容器预装的SQLite3版本过低,无法提供这些符号,导致动态链接失败。

可行解决方案

1. 升级容器内的SQLite3库

先更新apk索引并升级现有SQLite3到仓库最新版,再安装Node.js:

apk update && apk upgrade sqlite3
apk add nodejs npm

升级后若SQLite3版本满足Node.js依赖要求,符号缺失问题会自动解决。

2. 降级到Node.js 20.x LTS版本

Node.js 20系列是长期支持版,兼容性更稳定,与alpine:3.21.2系统库匹配度更高。指定大版本安装:

apk add nodejs~=20 npm~=20

此命令会安装20.x系列的最新兼容版本,避开22.13.1的依赖问题。

3. 手动安装匹配版本的SQLite3

先查看Node.js 22.13.1-r0依赖的SQLite3版本要求:

apk info -R nodejs

根据输出里的sqlite3>=x.x.x,安装对应版本的SQLite3,示例:

apk add sqlite3=3.46.0-r0

(具体版本号以apk info输出为准,需确保版本满足Node.js依赖)

4. 使用Node.js官方预编译二进制包替代apk安装

直接下载Node.js官方提供的适配musl libc的二进制包,不依赖系统SQLite3:

# 下载并解压Node.js二进制包
wget https://nodejs.org/dist/v22.13.1/node-v22.13.1-linux-x64-musl.tar.xz
tar -xJf node-v22.13.1-linux-x64-musl.tar.xz
# 将二进制文件和库文件复制到系统路径
cp -r node-v22.13.1-linux-x64-musl/bin/* /usr/local/bin/
cp -r node-v22.13.1-linux-x64-musl/lib/* /usr/local/lib/
# 验证安装
node -v && npm -v

内容的提问来源于stack exchange,提问作者Crown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 09:26:11