-
Notifications
You must be signed in to change notification settings - Fork 489
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
Add docker-compose build system #8709
Conversation
I tried with all your defaults and it seems to work except rserve, which fails with this:
I also had to comment out the
line, but you already fixed that as I see. When building on an M1 Mac I also had to change JAVA_HOME to
|
@beepsoft Thank you. I refactored the code a fair bit. I was able to build and run this on my Raspberry Pi to test both I also move the |
On M1 arm it now fails for me with this:
I checked that I also tried running I also tried running just |
Hmm interesting, thanks. I'll see if I can get a colleague to try it on his M1. |
I believe I've fixed the Maven build system. If others could test this again that would be great. Thanks |
I can confirm it builds and runs all right on M1 now. |
Hi @carlsonp, for this next sprint we are catching up on Community PRs. Would you mind updating/ refreshing thiis PR from develop? Thanks! |
ece907a
to
324c13b
Compare
I've rebased onto |
Just to let everybody reading in the future about this pull request know: @carlsonp @pdurbin and me talked today about this and related work like #8832, #8834 or #8320. We're all good, we don't want to block each other, we seem to agree about long term goals (which is what I am up for) and we want to coordinate and iterate. After all, all the work done here and elsewhere isn't as far away from each other as one might assume. And we are all on the same page these kind of things must go upstream to be F.A.I.R. (haha!) and easy to use. |
TODO for me: split out |
TODO for me: add Trivy container scanning |
Started to work using the existing base container as the base for the dataverse build. Moved the other containers into the similar maven build system in the |
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 tried running the build containers script.
# prep Solr beforehand so it has the appropriate permissions | ||
# 8983 is the UID hard-coded in the stock Solr Dockerfile | ||
mkdir -p ./conf/docker-compose/solr-bind/ | ||
sudo chown 8983:8983 ./conf/docker-compose/solr-bind/ |
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.
Is this sudo necessary? Can we do the chown without it?
It wigs me out when scripts ask for my sudo password.
|
||
RUN mkdir -p /home/dataverse/.aws/ | ||
COPY --chown=dataverse:dataverse ./conf/docker-compose/dataverse/config /home/dataverse/.aws/config | ||
COPY --chown=dataverse:dataverse ./conf/docker-compose/dataverse/credentials /home/dataverse/.aws/credentials |
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.
would you want to make the credentials MicroProfile config options, so they're not stored in plain text? this can be done in 5.10+
I checked with ❤️@carlsonp❤️ and he's fine with us closing this in favor of this PR: Here's the quickstart for devs from the PR, by the way: https://dataverse-guide--9439.org.readthedocs.build/en/9439/container/dev-usage.html @carlsonp thanks for helping with the containerization effort! 🎉 🚀 |
@carlsonp I just wanted to let you know that ideas in this PR are still being discussed: #9439 (comment) ❤️ |
What this PR does / why we need it:
There have been a wide variety of community efforts involved around deploying Dataverse in containers such as Docker and Kubernetes. I am by no means a Docker expert but this separation of code into services for usage by docker-compose made sense in my mind. There are obviously many different ways to prepare it. I also wanted a way to be able to make changes and compile the Java code via the container itself rather than relying on prebuilt downloads to deploy. This does the following:
.war
deployable code from source<id>=files
for local storageand the other is
<id>=s3
for s3 storageI wholeheartedly would appreciate suggestions and improvements from others who have much more experience than I do around Dataverse and container technologies. I do feel the lack of an "officially" supported container option in the dataverse repo is making it harder for new developers to jump on-board and contribute. I hope that we can come up with a solution that targets both local developer needs as well as people wanting to run Dataverse in development or production settings on a server. Thank you for your time.
Which issue(s) this PR closes:
Unknown if there are backlog issues related to this.
Special notes for your reviewer:
There are additional items that we may wish to discuss or consider to include as part of this PR:
install.py
if already installed, the dataverse container takes a long time to startup, is there a better method here? look at/conf/docker-compose/dataverse/startup.sh
and see if there are improvements to be madeprepbuild.sh
move(done)docker-compose.yml
outside of this sub-directory to git repo rootSuggestions on how to test this:
Details on building are in
/conf/docker-compose/README.md
. All commands will be run from that directory.Things I tested but on a different branch so we likely need additional testers here:
Does this PR introduce a user interface change? If mockups are available, please link/include them here:
No UI changes, this is all backend build system.
Is there a release notes update needed for this change?:
Likely yes.
Additional documentation:
None