在node:7映像中安装ghostscript4js; 没有findlibgs.so

我目前正在用Docker容器开发一个Web应用程序。 我正在使用一个节点:7基本映像,并安装了与它的依赖关系的ghostscript。 我的项目还包含一个包含所有节点包的package.json。 我需要使用依赖于ghostscript和node-gyp的ghostscript4js,它们都被安装。 在npm安装期间,我得到一个g ++错误:

> ghostscript4js@2.0.7 install /usr/src/app/node_modules/ghostscript4js > node-gyp rebuild gyp info it worked if it ends with ok gyp info using node-gyp@3.5.0 gyp info using node@7.10.1 | linux | x64 gyp http GET https://nodejs.org/download/release/v7.10.1/node-v7.10.1-headers.tar.gz gyp http 200 https://nodejs.org/download/release/v7.10.1/node-v7.10.1-headers.tar.gz gyp http GET https://nodejs.org/download/release/v7.10.1/SHASUMS256.txt gyp http 200 https://nodejs.org/download/release/v7.10.1/SHASUMS256.txt gyp info spawn /usr/bin/python2 gyp info spawn args [ '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py', gyp info spawn args 'binding.gyp', gyp info spawn args '-f', gyp info spawn args 'make', gyp info spawn args '-I', gyp info spawn args '/usr/src/app/node_modules/ghostscript4js/build/config.gypi', gyp info spawn args '-I', gyp info spawn args '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi', gyp info spawn args '-I', gyp info spawn args '/root/.node-gyp/7.10.1/include/node/common.gypi', gyp info spawn args '-Dlibrary=shared_library', gyp info spawn args '-Dvisibility=default', gyp info spawn args '-Dnode_root_dir=/root/.node-gyp/7.10.1', gyp info spawn args '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp', gyp info spawn args '-Dnode_lib_file=node.lib', gyp info spawn args '-Dmodule_root_dir=/usr/src/app/node_modules/ghostscript4js', gyp info spawn args '--depth=.', gyp info spawn args '--no-parallel', gyp info spawn args '--generator-output', gyp info spawn args 'build', gyp info spawn args '-Goutput_dir=.' ] gyp info spawn make gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] make: Entering directory '/usr/src/app/node_modules/ghostscript4js/build' CXX(target) Release/obj.target/ghostscript4js/src/ghostscript4js.o SOLINK_MODULE(target) Release/obj.target/ghostscript4js.node g++: error: /usr/lib/x86_64-linux-gnu/libgs.so: No such file or directory ghostscript4js.target.mk:121: recipe for target 'Release/obj.target/ghostscript4js.node' failed make: Leaving directory '/usr/src/app/node_modules/ghostscript4js/build' make: *** [Release/obj.target/ghostscript4js.node] Error 1 gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23) gyp ERR! stack at emitTwo (events.js:106:13) gyp ERR! stack at ChildProcess.emit (events.js:194:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12) gyp ERR! System Linux 4.9.49-moby gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /usr/src/app/node_modules/ghostscript4js gyp ERR! node -v v7.10.1 gyp ERR! node-gyp -v v3.5.0 gyp ERR! not ok npm info lifecycle ghostscript4js@2.0.7~install: Failed to exec install script 

我不知道如何确保有一个libgs.so和它在哪里。 它应该由安装ghostscript只是安装好。 我对docker相对来说比较陌生,尤其是在使用节点映像作为基础的时候。

这里是我使用的命令的dockerfile:

  FROM node:7 ENV APP_DIR="/usr/src/app" COPY ./ ${APP_DIR} # Step 1: Install App # ------------------- WORKDIR ${APP_DIR} # Step 2: Install Python, GhostScript and npm packages # ------------------- ARG CACHE_DATE=2017-01-01 RUN \ apt-get update && \ apt-get install -y build-essential make gcc g++ python python-dev python-pip python-virtualenv RUN apt-get update && apt-get -y install ghostscript && apt-get clean RUN apt-get install -y libgs-dev RUN GS4JS_HOME="/usr/lib" && export GS4JS_HOME RUN npm install # Step 3: Start App # ----------------- CMD ["npm", "run", "start"] 

我指出了正确的方向。 看来这个映像没有用RUN GS4JS_HOME="/usr/lib" && export GS4JS_HOME环境variablesRUN GS4JS_HOME="/usr/lib" && export GS4JS_HOME我改了dockerfile并改用了ENV GS4JS_HOME="/usr/lib" 。 现在它正在工作。