1

libcouchbase.so.2: cannot open shared object file: No such file or directory尝试初始化时,我的 lambda 出现错误

使用 Couchbase 和带有外部 C 绑定的 Node SDK 在 Lambda 上运行


这些是我打包所有内容的步骤:

  1. 在 docker 容器中安装 libcouchbase rpm 包
  2. 将文件和文件复制到部署包libcouchbase.solibcouchbase.so.2libcouchbase.so.2.0.65
  3. 安装指向.so文件的 couchbase npm 包。
  4. 使用 serverless 框架打包部署到 lambda

这是我为此运行的命令片段:

WORKDIR /lambda

RUN wget http://packages.couchbase.com/releases/couchbase-release/couchbase-release-1.0-6-x86_64.rpm
RUN rpm -iv couchbase-release-1.0-6-x86_64.rpm
RUN yum install -y libcouchbase-devel libcouchbase2-bin

RUN mkdir -p libs\
  && cp /usr/lib64/libcouchbase.so libs \
  && cp /usr/lib64/libcouchbase.so.2 libs \
  && cp /usr/lib64/libcouchbase.so.2.0.65 libs

RUN npm install couchbase --compile --couchbase-root=libs

我得到的错误是:

{
  "errorMessage": "libcouchbase.so.2: cannot open shared object file: No such file or directory",
  "errorType": "Error",
  "stackTrace": [
    "Module.load (module.js:565:32)",
    "tryModuleLoad (module.js:505:12)",
    "Function.Module._load (module.js:497:3)",
    "Module.require (module.js:596:17)",
    "require (internal/module.js:11:18)",
    "bindings (/var/task/node_modules/bindings/bindings.js:112:48)",
    "Object.<anonymous> (/var/task/node_modules/couchbase/lib/binding.js:213:36)",
    "Module._compile (module.js:652:30)",
    "Object.Module._extensions..js (module.js:663:10)"
  ]
}
4

1 回答 1

2

发现问题。Lambda 已LD_LIBRARY_PATH设置为/var/task/lib我放置库的位置/var/task/libs

于 2019-07-23T21:02:53.330 回答