-
Notifications
You must be signed in to change notification settings - Fork 501
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
8932 container base image #8933
Conversation
Since you create the payara user in the Dockerfile, I would make the user (and group) ID configurable - aka as ARG. Setting this to the ID of the deployment user allows easy access to data on mounted volumes for backups and troubleshooting. BTW, if you are interested to have a look at our generic docker images, the repository is public: https://github.com/libis/rdm-build.git. There I start from the Payara docker image and we change the user and group ID of the payara user if needed. |
Thanks @Kris-LIBIS for your feedback! Maybe this base image is of help for you folks, too. I'll add the ARGS, sounds like a nice feature! Browsing through the scripts I see you inherited from gdcc/dataverse-kubernetes so I'm just going to re-inherit some pretty nice ideas from you folks! 😄 |
b449150
to
ab5c03c
Compare
I was able to successfully compile and run this image. I didn't try anything else at this point but it builds on my machine. Nice! |
6d8571b
to
4164116
Compare
Will be replaced with a capability to make API endpoints for authentication providers read from MPCONFIG sources.
Payara 5 defaults to a "payara5" topmost dir, Payara 6 to "payara6". To avoid adding different directories in the assembly, cut the number from the directories name when unpacking. This does not prevent you from doing stupid things like not cleaning before switching the version leading to an unknown state of old and new libs, etc.
There was an ongoing discussion that the Docker Hub Image "openjdk" is not backed by any official supported project but complete goodwill of Oracle shipping their JRE/JDK. There is no "real" release of OpenJDK . There exist only real distributions like Oracle JDK, Eclipse Temurin, Azul JDK, AWS Corretto etc (see https://whichjdk.com). As for this reason the "openjdk" image has been deprecated, switching to Eclipse Temurin JRE here. See also: docker-library/openjdk#505
With the rise of Apple M1/M2 silicons, we need to provide ARM64 based images in addition to AMD64.
Co-authored-by: Benjamin Peuch <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@poikilotherm sorry to small chunk you, but this review is just for the docs. Overall, they look great!
78e465c
to
e964d86
Compare
e964d86
to
f1a64a8
Compare
As requested by review from @pdurbin, aligning image tag names.
added to sprint Dec 15, 2022 |
Todo inspired from @donsizemore #7530: make GC configurable |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm approving this. All API tests are passing. I tweaked the docs a bit and ran mvn -Pct -f modules/container-base install
as instructed in the new Container Guide.
It built the image, as expected:
$ docker images | head -2
REPOSITORY TAG IMAGE ID CREATED SIZE
gdcc/base unstable 0a03fd50e8bf 11 minutes ago 588MB
@kcondon honestly I wouldn't worry too much about testing the mvn command above or any of the many configuration options that are documented in this PR (I didn't). This PR just lays the groundwork for a future "application image" (with Dataverse in it) to go on top of this base image. There are a few minor tweaks to our pom.xml but they shouldn't break anything. Again, all API tests are passing.
Thanks, @poikilotherm!
I don't think I'll add the ZGC option for now, as it is strongly discouraged to use the Java 11 preview version of it. Please go ahead and merge if you like it. 🙂 |
What this PR does / why we need it:
This PR adds a Maven submodule to build a base container image containing a tuned Payara app server and all things necessary to deploy Dataverse WAR in it.
Which issue(s) this PR closes:
Closes #8932
Special notes for your reviewer:
TODOs:
install
target instead ofpackage
to make the build dependable from app image build/data
folder for future workaround of storing temporary upload files (see here) - maybe also to be used with<dataverse.files.directory>/temp
location in case of containers?/docroot
,/data
,/dumps
aVOLUME
by default? (Not likely to create a pitfall for Docker volumes vs. Kubernetes/Bindmounts chaos here)Suggestions on how to test this:
Simply install Docker/... and follow the provided instructions within the new container guide.
Does this PR introduce a user interface change? If mockups are available, please link/include them here:
Nope.
Is there a release notes update needed for this change?:
I don't know yet. Maybe wait for having the Dataverse container ready and not just the base image.
Additional documentation:
Provided.