yangxuan8282
V2EX  ›  问与答

alpine 下到底该怎么安 node-sqlite3 啊

By yangxuan8282 at 2017 年 6 月 19 日 · 2882 次点击

试了好多次都失败了,报错信息

node-pre-gyp install --fallback-to-build

只要碰到有 node-sqlite3 依赖的 docker image 每次都卡在 sqlite3 这

base image 是 alpine,node 试过 4.x 和 6.x

去 github 页面看 issues 一堆用户碰到类似的问题

升级了 npm 还是不行

按照 issues 里提到的可能的几种方法试了也不行

比如 npm i sqlite3 --build-from-source 或者 npm install --unsafe-perm sqlite3

看 library 里 ghost 的 Dockerfile 也没有什么特殊操作,而 ghost 也有 sqlite3 这个依赖,不知道为何我就老卡在这

第 1 条附言  ·  2017 年 6 月 20 日

后来解决了,需要手动安装一个软件包:

apk add sqlite-libs

看 ghost 官方 alpine 镜像并没有明确指定这个依赖,但是会自动安装上,我自己尝试搭的另一个服务的 alpine 镜像就必须要装一下才行

第 2 条附言  ·  2017 年 6 月 21 日

后来又发现 node-sqlite3 这个包的安装对于 x64 是直接安装预编译的包,而其它架构比如 i386 或者 armhf 这些因为官方并没有提供预编译的包,需要自己编译,但是直接编译的话会提示报错,原因是缺少依赖,具体来说需要先安装一下 g++,比如想 build arm的ghost alpine/debian image,需要在 docker library 官方版本 Dockerfile 中加一下 g++

apk add --no-cache --virtual .build-deps \
  		ca-certificates \		 
  		gcc \	
 +                g++ \
4 条回复  •  2017-06-20 02:10:14 +08:00
cxbig
   1
cxbig  
   2017 年 6 月 19 日
要先确认你的 image 里有安装 sqlite3
momocraft
   2
momocraft  
   2017 年 6 月 19 日
那你可以用 ghost 的 Dockerfile build 嗎?
Pastsong
   3
Pastsong  
   2017 年 6 月 19 日
这个是因为他要从某个 github aws 的地址上拉东西下来,把命令行挂上代理就好了
shiny
   4
shiny  
PRO
   2017 年 6 月 20 日 via Android
试试用构建服务,选择海外服务器。
© 2026 V2EX · 31ms · 3.9.8.5