V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yangxuan8282
V2EX  ›  问与答

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

  •  
  •   yangxuan8282 · 2017-06-19 21:51:23 +08:00 · 2161 次点击
    这是一个创建于 2709 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    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-06-20 02:32:59 +08:00

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

    apk add sqlite-libs
    

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

    第 2 条附言  ·  2017-06-21 15:34:46 +08:00

    后来又发现 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-06-19 22:07:46 +08:00
    要先确认你的 image 里有安装 sqlite3
    momocraft
        2
    momocraft  
       2017-06-19 22:34:17 +08:00
    那你可以用 ghost 的 Dockerfile build 嗎?
    Pastsong
        3
    Pastsong  
       2017-06-19 23:59:32 +08:00
    这个是因为他要从某个 github aws 的地址上拉东西下来,把命令行挂上代理就好了
    shiny
        4
    shiny  
       2017-06-20 02:10:14 +08:00 via Android
    试试用构建服务,选择海外服务器。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3032 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 00:33 · PVG 08:33 · LAX 16:33 · JFK 19:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.