-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UBI-based Dockerfile for IntelliJ IDEA Che editor #18031
Comments
how to use ubi8 there ? it's more server side oriented, here it's user |
UBI8 minimal is a tiny RHEL8.2 server. Use that instead of https://github.com/che-incubator/che-editor-intellij-community/blob/master/Dockerfile#L9 Then use microdnf to install whatever you need into it. Lots of examples of this already in Che-land.
|
I do know but ubi8 has no packages on graphical stuff like Xwindow/vnc stuff |
For examples of how to build in both online / offline mode to fetch dependencies ( https://github.com/che-incubator/che-editor-intellij-community/blob/master/Dockerfile#L13 ) you'll want to look at either the super complicated crw-theia approach: https://github.com/redhat-developer/codeready-workspaces-theia/tree/crw-2.5-rhel-8/build.sh or this approach for building the registries in online/offline modes: https://github.com/redhat-developer/codeready-workspaces/blob/crw-2.5-rhel-8/dependencies/che-plugin-registry/build.sh#L36-L38 |
If they exist in RHEL8.2, they'll be available in UBI8, which uses the same repos. https://rpmfind.net/linux/rpm2html/search.php?query=Xserver&submit=Search+...&system=centos&arch=x86_64 But bear in mind you can't easily install from EPEL and 3rd party / commercial repos. We'd have to prefetch those deps via a Jenkins job, then get them into Brew using a similar approach to what's in the crw-theia build. |
It could be any image available from RHEC, e.g. https://catalog.redhat.com/software/containers/search?q=rhel8 |
Current state. Red Hat images catalog https://catalog.redhat.com/software/containers/search?q=ubi8&p=1 contains images which are based only for the server side deployment. This means that we don't have ability to extend some of image with desktop environment, because it doesn't exist. Image ubi8-minimal was chosen as base image. In all UBI based images there are two configurations for repository, Red Hat internal and UBI: /etc/yum.repos.d/redhat.repo
/etc/yum.repos.d/ubi.repo
https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/x86_64/appstream/os/Packages/x/ There're several ways to use such packages:
This approach will allow to install all necessary rpms that are needed to run Intellij Idea on desktop environment. But according to FAQ - Universal Base Images, item №39:
... says that we can't do it, because we can loose supportability. Another way is to rebuild rpms from the sources and publish rpms internally in Red Hat infrastructure, but this approach limits end user from building the image on his local machine. Because image can be built on specific development environment.
According to FAQ - Universal Base Images, item №20:
... says that we can distribute applications which is built in the UBI image. But this statement is applied for the deployable applications. But for the third-party software (such as xorg server, fluxbox, vnc-related software) there's nothing said. This approach will allow us to control the whole flow of setting up desktop environment for running Intellij Idea. It doesn't require using additional repositories. It is enough to get sources for the sticked version and build them in builder images. And this allows to build image on any public CI and on local machine. But I'm not 100% sure that EULA allows this, studying this question at the moment. Packages needed to support desktop environment: xorg-x11-server (with all necessary dependencies), fluxbox (builds from sources without any dependencies), noVNC (node.js application to allows to connect to VNC by accessing a web page), tigerVNC (VNC server, which also builds without dependencies). |
@pdaverh @RickJWagner @nickboldt what about referencing the upstream IntelliJ editor (fedora based) in CRW the and offer "community support" for it? Building X11 server from sources doesn't make sense. |
We have done similar things with other products. (i.e. offered 'commercially reasonable' support around proprietary third-party messaging connectors with our SOA products.) |
@RickJWagner making the user go upstream would mean that we...
That's by far easier for us to produce since
I'll ask Chris O about the feasibility of build-from-source RPMs and how to get them easily into Brew. We can also reach out to Matt M about the prodsec risk around redistributing not-built-from-source RPMs (if those RPMs are build by RH for Fedora, so at least the build process is controlled/managed). |
Maybe I'm missing something, but if we are talking about downstream version of the image, what's the problem with having dockerfile simmilar to this for example:
This dockerfile builds fine if the host system is properly subscribed using |
Those RPMs don't exist in a content set that Brew can see, so we can't install them into quay.io/crw/plugin-intellij-rhel8:2.5 container. After some digging around in Brew thx to Chris' advice, we've found 3 of the 4 deps:
But for the 4th one...
Chris said:
|
We could also consider switching to gdm-3.28.3-29.el8, which is already included in RHEL 8.2. @azatsarynnyy WDYT? |
@nickboldt not sure I know what you are referring to but we won't provide a devfile for IntelliJ based workspaces. No devfile upstream, no devfile downstream. We do publish a new plugin in the plugin registry.
Maintaining the build of fluxbox from sources will have a cost and if we do it now it will be difficult to revert this decision. Since it's still unclear how much customers will use and need support on this particular editor I think it's safer to use the upstream image now and consider, when planning next releases, if we require a downstream build or not. |
We can't put upstream image into the product. Period, full stop. It's not built inside Brew. But we CAN document how to add the plugin & use the sidecar (eg., with a devfile). If you want a 100% community-supported solution here, then we won't actually put anything into CRW 2.5 for this requirement, and it can slip to 2.x. If we DO want to include a CRW-branded, RH-supported image in the CRW 2.5 payload, then it's a 3-pronged approach:
|
sorry but using gdm is like a no-go as UX as it should be the smallest and invisible display manager (there are tons of others display manager but gnome is not fitting in this category as we only have one app) |
If |
you'd think so, but no.
So I guess we're stuck with either:
|
I never tried that... but as gnome is the only DE supported in RHEL, wouldn't be possible to use just |
IIRC that should work yes, though I'm not sure what dependencies that will bring in. |
I'm afraid that GDM is not the option for a Che Editor. It shouldn't have any visible UI parts, except for the IDEA window. As I see, Kirk has already made great progress on it: https://github.com/redhat-developer/codeready-workspaces-images/tree/crw-2.5-rhel-8/codeready-workspaces-plugin-intellij 👍 @nickboldt do you mind assigning this upstream issue to Kirk? |
Investigation of the possible approaches has been done in #18031 (comment) |
How to install VNC using UBI base image?@nickboldt please provide me inputs how to create intelliJ based docker image for power(ppc64le) as that dependency isn't available. |
@nickboldt Please share you inputs regarding the above issue. |
Is your task related to a problem? Please describe.
To include IntelliJ IDEA Che editor to CRW we need a UBI-based Dockerfile.
Describe the solution you'd like
Prepare a UBI-based Dockerfile for IntelliJ IDEA Che editor.
Currently used Fedora-based Dockerfile: https://github.com/che-incubator/che-editor-intellij-community/blob/master/Dockerfile
Describe alternatives you've considered
Once we have a UBI-based Dockerfile, we can get rid of a Fedora-based one to not support both.
Additional context
This issue is a sub-task of #17790
The text was updated successfully, but these errors were encountered: