-
Notifications
You must be signed in to change notification settings - Fork 492
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
Epic: small footprint container usable for development, testing and production purposes #5292
Comments
This commit adds initial support for building an "application only" container. That is achived by adding the fabric8io/docker-maven-plugin to a new Maven profile called "container". Build via `mvn docker:build`. The build is based on the upstream Payara 5 image right now. This is a TODO, as the upstream container project is not very responsive and there is no proper signal handling in place.
@pdurbin and other: initial work on the building part has been to my feature branch. Right now this will (of course) not work. The Postgres driver is missing right now and the config part (see #5293) has to be addressed first.
Also wondering if automated builds and security scans from quay.io could be interesting for this. |
Since the upstream merged a lot of stuff cleaning up most of the issues (see here), I switched back to use those. Some issues still exist with the init system. |
This commit adds initial support for building an "application only" container. That is achived by adding the fabric8io/docker-maven-plugin to a new Maven profile called "container". Build via `mvn docker:build`. The build is based on the upstream Payara 5 image right now. This is a TODO, as the upstream container project is not very responsive and there is no proper signal handling in place.
This commit adds initial support for building an "application only" container. That is achived by adding the fabric8io/docker-maven-plugin to a new Maven profile called "container". Build via `mvn docker:build`. The build is based on the upstream Payara 5 image right now. This is a TODO, as the upstream container project is not very responsive and there is no proper signal handling in place.
This commit adds initial support for building an "application only" container. That is achived by adding the fabric8io/docker-maven-plugin to a new Maven profile called "container". Build via `mvn docker:build`. The build is based on the upstream Payara 5 image right now. This is a TODO, as the upstream container project is not very responsive and there is no proper signal handling in place.
This commit adds initial support for building an "application only" container. That is achived by adding the fabric8io/docker-maven-plugin to a new Maven profile called "container". Build via `mvn docker:build`. The build is based on the upstream Payara 5 image right now. This is a TODO, as the upstream container project is not very responsive and there is no proper signal handling in place.
I just opened PR payara/docker-payaraserver-full#61 and hope things will get merged. |
This commit adds initial support for building an "application only" container. That is achived by adding the fabric8io/docker-maven-plugin to a new Maven profile called "container". Build via `mvn docker:build`. The build is based on the upstream Payara 5 image right now. This is a TODO, as the upstream container project is not very responsive and there is no proper signal handling in place.
This commit adds initial support for building an "application only" container. That is achived by adding the fabric8io/docker-maven-plugin to a new Maven profile called "container". Build via `mvn docker:build`. The build is based on the upstream Payara 5 image right now. This is a TODO, as the upstream container project is not very responsive and there is no proper signal handling in place.
This commit adds initial support for building an "application only" container. That is achived by adding the fabric8io/docker-maven-plugin to a new Maven profile called "container". Build via `mvn docker:build`. The build is based on the upstream Payara 5 image right now. This is a TODO, as the upstream container project is not very responsive and there is no proper signal handling in place.
This commit adds initial support for building an "application only" container. That is achived by adding the fabric8io/docker-maven-plugin to a new Maven profile called "container". Build via `mvn docker:build`. The build is based on the upstream Payara 5 image right now. This is a TODO, as the upstream container project is not very responsive and there is no proper signal handling in place.
This commit adds initial support for building an "application only" container. That is achived by adding the fabric8io/docker-maven-plugin to a new Maven profile called "container". Build via `mvn docker:build`. The build is based on the upstream Payara 5 image right now. This is a TODO, as the upstream container project is not very responsive and there is no proper signal handling in place.
Current niceness blockers:
But maybe we can just deal with it for now. Jenkinsfiles missing. Solr image missing. |
Instead of using the upstream Payara image we build on the OpenJDK image which is also used by Solr. That way we reduce image pulls. We also optimize the domain1 configuration to be more production ready. Relates to IQSS#5292
1. Moving some specifics from the startup script to the build time config, saving time during startup. 2. Enlarging thread pools, setting better options for memory management and many other optimizations for using in production. See also gdcc/dataverse-kubernetes#218 Relates to IQSS#5292
…un & start targets, etc. IQSS#5292
…Solr and Postgres in single Maven call. IQSS#5292
Instead of using the upstream Payara image we build on the OpenJDK image which is also used by Solr. That way we reduce image pulls. We also optimize the domain1 configuration to be more production ready. Relates to IQSS#5292
1. Moving some specifics from the startup script to the build time config, saving time during startup. 2. Enlarging thread pools, setting better options for memory management and many other optimizations for using in production. See also gdcc/dataverse-kubernetes#218 Relates to IQSS#5292
…un & start targets, etc. IQSS#5292
…Solr and Postgres in single Maven call. IQSS#5292
There is still plenty of stuff to do. Yet this issue is quite dated and it's starting to become messy. Closing this for now. Note, that there is traction at https://github.com/gdcc/dataverse/tree/develop+ct, https://github.com/gdcc/dataverse-kubernetes and much MPCONFIG stuff going on. |
Instead of using the upstream Payara image we build on the OpenJDK image which is also used by Solr. That way we reduce image pulls. We also optimize the domain1 configuration to be more production ready. Relates to IQSS#5292
1. Moving some specifics from the startup script to the build time config, saving time during startup. 2. Enlarging thread pools, setting better options for memory management and many other optimizations for using in production. See also gdcc/dataverse-kubernetes#218 Relates to IQSS#5292
…un & start targets, etc. IQSS#5292
…Solr and Postgres in single Maven call. IQSS#5292
IMHO this is an epic, not a single story.
This issue is successor to #5187 and closes it.
It is intended to serve as a base for solutions or make life easier in:
This is blocked by some stuff and relies on some prior art to be done:
Dependency Housekeeping and how developers will benefit from it #5288 - Dependency HousekeepingDone!Things to consider:
HEALTCHECK CMD
that uses a to-be-built API endpoint reporting on health status?Vision / Proposal
Currently, when running integration tests or deploying Dataverse to Docker/Kubernetes, only kind of heavyweight solutions exist with the DockerAIO for IT tests and most (all?) Docker/Kubernetes/OpenShift approaches relying on the installer script.
I encourage the following vision:
To get there I suggest using:
Things to keep in mind:
Give it a shot! (Testing)
To test, just have Docker, Maven, Git and Java installed.
Then do:
Please keep in mind that this is a feature branch. If you already have a cloned dataverse repo, you might better off using:
I regularly update this feature branch to be based on the latest
develop
. This involves rebasing, which will let your local branch be diverged. In that case, simply usegit reset --hard poikilotherm/5292-small-container
after afetch
.The text was updated successfully, but these errors were encountered: