Files
test-quarkus/README.md
T
darroyo 38b22648f1 build: resolve --remote as SSH config alias when it has no @
scripts/build-and-push.sh now parses ~/.ssh/config (or --ssh-config)
when --remote is a bare alias like 'prod'. It extracts HostName,
User, Port and IdentityFile from the matching Host block, falls back
to the current user / port 22, and uses the config IdentityFile when
--ssh-key is not given. --ssh-key always wins. The resolved target
is shown in the logs before any docker/pussh call, and is the form
passed to docker pussh and the verification ssh.

Wildcards, Include and Match directives are intentionally not handled:
ssh itself resolves them when the alias is passed through, but the
script logs the expanded target first for visibility.
2026-09-08 18:35:23 -03:00

109 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
It can be invoked from any directory: by default it resolves the project root
from the script's own location. Override with `--project-dir PATH` or the
`PROJECT_DIR` environment variable when needed.
### SSH config aliases
`--remote` accepts either an explicit `user@host[:port]` or a bare alias that
is resolved from `~/.ssh/config`. The matching `Host` block supplies
`HostName`, `User`, `Port` and `IdentityFile` automatically:
```text
# ~/.ssh/config
Host prod
HostName prod.example.com
User deploy
Port 22
IdentityFile ~/.ssh/deploy_ed25519
```
```shell script
./scripts/build-and-push.sh --remote prod
# Resolves to deploy@prod.example.com:22 using ~/.ssh/deploy_ed25519
```
`--ssh-key` always overrides the config `IdentityFile`. Use `--ssh-config PATH`
to point at a non-default config file.
## 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)