-
Task
-
Resolution: Done
-
Blocker
-
3.12.0.GA
-
False
-
None
-
False
-
-
Currently it's possible to run Devspaces-Code in a ubi8-based container. The current task is for an ability to run Devspaces-Code in a ubi9-based container.
There is a pull request in the upstream Che-Code that provides this functionality. But some adaptation is required for the Devspaces-Code.
The main problem is: Node.js without dynamic dependency on the /lib64/libbrotlicommon.so.1 is required.
In the upstream Node.js is downloaded from the https://nodejs.org resource. It's good enough for the upstream, but taking in account productization process, a better solution for the devspaces-code should be found.
More details:
Currently we use Node.js from the ubi8/nodejs-18 image to build and run VS Code.
At the moment the process is:
- we use registry.access.redhat.com/ubi8/nodejs-18 as a base image to build VS Code
- at starting a workspace we copy the VS Code assembly + Node.js from ubi8/nodejs-18 image to a user's container
- we run VS Code in the user's container using that Node.js from the ubi8/nodejs-18 image
It works for ubi8-based user's containers as ubi8-based images contain all dependencies that the copied Node.js requires.
Now we are going to support running VS Code in ubi9-based containers. There is some incompatibility between ubi8 and ubi9-based images, like:
- Node.js from ubi8/nodejs-18 relies on the /lib64/libcrypto.so.1.1
- ubi9-based images contain /lib64/libcrypto.so.3 instead
So I tried to use Node.js from the https://registry.access.redhat.com/ubi9/nodejs-18 image to run VS Code in a ubi9-based user's container. But it doesn't work.
The cause of the problem:
- Node.js from the ubi9/nodejs-18 image relies on the libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1.
- At the same time, for example, registry.access.redhat.com/ubi9:9.3 image doesn't have /lib64/libbrotlicommon.so.1.
So, to solve the problem:
- Node.js without dynamic dependency on the /lib64/libbrotlicommon.so.1 is required
- probably the best solution would be to have static Node.js, so without dynamic dependencies. I guess this way we could use such Node.js to run VS Code in any container as static Node.js would bring all required dependencies
- relates to
-
CRW-5963 Support for running Che-Code in containers based on Red Hat Universal Base Image 9
- Resolved
- links to
- mentioned on