Uship Packaging
Launcher
To launch UShip, you just have to launch a CDI SE container.
Using default implementation - Apache OpenWebBeans - it can be done using the default main(String…)
: org.apache.openwebbeans.se.CDILauncher
.
For the web server you can use --openwebbeans.main uShipTomcatAwait
argument with CDILauncher
to await Tomcat server and not quit immediately.
Once you collected all dependencies to be able to build the application classpath, simply set this class a your main and your application will start.
Create docker images
We highly recommend using JIB to create the docker images but you can also use a plain Dockerfile
if desired.
This documentation will use jib to provide an end to end example.
Here is how to define Jib plugin to create a docker image:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>...</version>
<configuration>
<containerizingMode>packaged</containerizingMode>
<from>
<image>azul/zulu-openjdk-alpine:11.0.11-11.48.21-jre@sha256:355dfb25e12633692c1f34b7fccd29668efd583d3cfe18466e1ab28b0399b740</image>
</from>
<to>
<image>company/${project.groupId}:${project.version}</image>
</to>
<container>
<mainClass>org.apache.openwebbeans.se.CDILauncher</mainClass>
<appRoot>/opt/${project.groupId}/${project.artifactId}</appRoot>
<workingDirectory>/opt/${project.groupId}/${project.artifactId}</workingDirectory>
<environment>
<LANG>en_US.UTF-8</LANG>
</environment>
<jvmFlags>
<jvmFlag>-Djava.util.logging.manager=io.yupiik.logging.jul.YupiikLogManager</jvmFlag>
<jvmFlag>-Djava.security.egd=file:/dev/./urandom</jvmFlag>
</jvmFlags>
<ports>
<port>8080</port>
</ports>
</container>
</configuration>
</plugin>
Once configured you can build a local docker image using: mvn package jib:dockerBuild
.
Tip
|
using mvn package jib:build , you can push the image to a remote registry without docker daemon. See jib documentation for more details.
|