inveniosoftware / docker-invenio

Docker base images for Invenio.
https://docker-invenio.readthedocs.io
MIT License
10 stars 34 forks source link

Base Docker image #51

Closed avivace closed 1 year ago

avivace commented 1 year ago

Decision: use AlmaLinux as base image.

Findings

Today (20 Oct 2022), apps end of life:

Tasks

avivace commented 1 year ago

As mentioned by Werner some dependencies (like xmlsec1-devel) are not available without a RHEL subscription. E.g. xmlsec1 is shipped but not the devel one

It does indeed seem that the "CodeReady builder" UBI image does not give access to the full repository. See some replies by RH employees.

avivace commented 1 year ago

I got some more input by Lars and I pinged Alex Lossent about this. There's this doc page that may be relevant but it looks like only some packages are shipped there (e.g. Oracle) so I still don't see how we could use this image (a part from manually installing the RPM and handling the dependencies)

avivace commented 1 year ago

AlmaLinux should be a nice alternative for now. The next steps now are to move the current images in https://github.com/inveniosoftware/docker-invenio to use Alma as base instead of centos. There's already a 3.9 one merged there. One thing to check is also how are npm/node and python installed (nvm? distribution packaged python?)

mfenner commented 1 year ago

+1 regarding AlmaLinux. Do we also provide an image with AlmaLinux8 (for me only AlmaLInux9 is fine).

I would use Python from the distribution packaged Python, which is Python 3.9 in AlmaLinux 9. Node.js LTS is moving faster and probably has to be installed from source or NVM. Do we want to aim for Node@14 (supported until April 2023) or Node@16 (supported until September 2023)? I favor the latter as we would have to release a new image in a few months. @gressho do prefer to use nvm?

wgresshoff commented 1 year ago

In the Alma image I made there is the distribution packaged Python (3.9) included. Node.js is installed by nvm. The first reason I included an older version of Node.js is rather simple: I followed the documentation. The second reason is: with the newest version I can't build InvenioRDM, there is a webpack (?) problem I can't work arround. As the installation of nvm in an image is rather tricky (they just add shell commands) I'd surely prefered a distribution based installation. Yet I've seen comments in discord of InvenioRDM developers they run a local InvenioRDM instance perfectly with Node.js 16 and npm 8.

mfenner commented 1 year ago

I hope the issue running Node 16 can be resolved soon, see https://github.com/inveniosoftware/react-invenio-forms/pull/167. Why nvm and not installing a particular node version?

wgresshoff commented 1 year ago

I was following the recommendation from the docs. And it's really simple to change to a different Node.js version if there are problems with the one in use. And as I don't have any expertise regarding Node.js I stick to the ways I know...