scripts/build-and-push.sh builds the native image with the Mandrel Dockerfile and pushes it to a remote Docker host via docker-pussh (unregistry), transferring only missing layers over SSH. - Name and tag default to pom.xml artifactId/version (overridable) - Builds for linux/amd64; --skip-build to pussh only - Verifies image presence on the remote after push and prints a ready-to-use docker run hint README updated with a 'Building and deploying natively' section.
82 lines
2.8 KiB
Markdown
82 lines
2.8 KiB
Markdown
# test-quarkus
|
||
|
||
This project uses Quarkus, the Supersonic Subatomic Java Framework.
|
||
|
||
If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .
|
||
|
||
## Building and deploying natively
|
||
|
||
Build the native image with the Mandrel-based multi-stage Dockerfile and push it
|
||
directly to a remote Docker host via [unregistry](https://github.com/psviderski/unregistry)
|
||
(no external registry required; only missing layers are transferred over SSH):
|
||
|
||
```shell script
|
||
./scripts/build-and-push.sh --remote deploy@prod.example.com
|
||
```
|
||
|
||
The script reads `artifactId` and `version` from `pom.xml` for the image name
|
||
and tag, builds for `linux/amd64`, and verifies the image is present on the
|
||
remote after pushing. See `./scripts/build-and-push.sh --help` for all flags.
|
||
|
||
## Running the application in dev mode
|
||
|
||
You can run your application in dev mode that enables live coding using:
|
||
```shell script
|
||
./mvnw compile quarkus:dev
|
||
```
|
||
|
||
> **_NOTE:_** Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.
|
||
|
||
## Packaging and running the application
|
||
|
||
The application can be packaged using:
|
||
```shell script
|
||
./mvnw package
|
||
```
|
||
It produces the `quarkus-run.jar` file in the `target/quarkus-app/` directory.
|
||
Be aware that it’s not an _über-jar_ as the dependencies are copied into the `target/quarkus-app/lib/` directory.
|
||
|
||
The application is now runnable using `java -jar target/quarkus-app/quarkus-run.jar`.
|
||
|
||
If you want to build an _über-jar_, execute the following command:
|
||
```shell script
|
||
./mvnw package -Dquarkus.package.type=uber-jar
|
||
```
|
||
|
||
The application, packaged as an _über-jar_, is now runnable using `java -jar target/*-runner.jar`.
|
||
|
||
## Creating a native executable
|
||
|
||
You can create a native executable using:
|
||
```shell script
|
||
./mvnw package -Dnative
|
||
```
|
||
|
||
Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
|
||
```shell script
|
||
./mvnw package -Dnative -Dquarkus.native.container-build=true
|
||
```
|
||
|
||
You can then execute your native executable with: `./target/test-quarkus-1.0.0-SNAPSHOT-runner`
|
||
|
||
If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.
|
||
|
||
## Related Guides
|
||
|
||
- REST Jackson ([guide](https://quarkus.io/guides/rest#json-serialisation)): Jackson serialization support for Quarkus REST. This extension is not compatible with the quarkus-resteasy extension, or any of the extensions that depend on it
|
||
- SmallRye Health ([guide](https://quarkus.io/guides/smallrye-health)): Monitor service health
|
||
|
||
## Provided Code
|
||
|
||
### REST
|
||
|
||
Easily start your REST Web Services
|
||
|
||
[Related guide section...](https://quarkus.io/guides/getting-started-reactive#reactive-jax-rs-resources)
|
||
|
||
### SmallRye Health
|
||
|
||
Monitor your application's health using SmallRye Health
|
||
|
||
[Related guide section...](https://quarkus.io/guides/smallrye-health)
|