Hello,
in our build environment we can not install Node. Instead we need to build with Docker.
Before I start creating a suitable docker image - are there already prebuilt images available for that purpose (including JDK21, Maven, Node)?
Hello,
in our build environment we can not install Node. Instead we need to build with Docker.
Before I start creating a suitable docker image - are there already prebuilt images available for that purpose (including JDK21, Maven, Node)?
This is what I have in some old example that I haven’t touched in a while.
FROM maven:3-eclipse-temurin-17-focal AS build
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && apt-get install -y nodejs
There’s also a corresponding image for Java 21. The latest version is 3.9.7-eclipse-temurin-21-jammy
. I haven’t tested if the node installation still works well with that one or if would need some adjustments.
It would be really nice if there were docker images available with current jdk, maven and current vaadin dependencies for Maven already loaded. I have a pipeline that compiles a production version of my app and then packages it for different platforms – building an installer typically requires running on the correct platform, which is why I’m using a cloud pipeline.
Do you mean that the dependencies would already be populated into .m2/repository
so that the mvn
command wouldn’t have to keep downloading them again for every time a container is built?
In that case, how would you ensure that the Vaadin version for the used Docker image would be in sync with the Vaadin version defined in pom.xml
?
When I launch the pipeline, I get the revision for my software and whatever from the pom.xml, so that the pipeline gives Git and GitHub the proper version numbers. I could get the Vaadin version there as well. But even editing the pipeline to fix the Vaadin version for the build container would be acceptable – we don’t change the Vaadin version that often due to the time it takes to check there were no unsuspected surprises in behavior.
And if the version in .m2 is wrong relative to pom.xml, it’s the same as currently – maven will pull everything according to the version in the pom.