I need to build a container based on RHEL 8 and then install LoopBack and IBM ApiConnect.
- Run a container with the RedHat Enterprise Linux 8
docker run -it --name api-framework-rhel8 -v ~/api-framework-rhel8:/api-framework-rhel8 registry.access.redhat.com/ubi8/ubi:8.1 bash
- Installing Node.js (v12) into the container
curl -sL https://rpm.nodesource.com/setup_12.x | bash -
yum install -y nodejs
- Install development tools to build native addons
yum install gcc-c++ make
yum install python38
yum install python27
- Use
alternatives
to mappython
topython2
(orpython3
) - Tried both and both failed duringapi-connect
install.
alternatives --set python /usr/bin/python2
- Install LoopBack
npm install -g loopback-cli
Install ApiConnect
npm install -g --unsafe-perm=true --allow-root apiconnect
However, this fails with the error message (from the console, 2 sets):
gyp: [Errno 2] No such file or directory while executing command '['python', './generate_build_id.py']' in binding.gyp while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack at ChildProcess.emit (events.js:315:20)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Linux 4.19.76-linuxkit
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/lib/node_modules/apiconnect/node_modules/appmetrics
gyp ERR! node -v v12.18.4
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
Note that python2
and python3
are installed under /usr/bin
and accessible from the container, however, python
can not be called.
The second set of errors from the console:
Error: [email protected] install: `node extract_all_binaries.js || node-gyp rebuild`
error code ELIFECYCLE
error errno 1
error [email protected] install: `node extract_all_binaries.js || node-gyp rebuild`
error Exit status 1
error Failed at the [email protected] install script.
error This is probably not a problem with npm. There is likely additional logging output above.
I noticed that you're using Node.js 12.x. The apiconnect toolkit only supports Node.js 10.x.
I tried most of the steps in your question, but switched to Node 10, and that seemed to resolve the issue.
Also, be sure to install python27 and run
alternatives --set python /usr/bin/python2
as you mentioned.Here's the complete Dockerfile I used: