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.
- Resolve PROJECT_DIR from the script's own location by default
(works with absolute, relative and symlinked invocations)
- Allow override via --project-dir flag or PROJECT_DIR env var
- Improve error message for invalid --project-dir paths
- Update usage and README accordingly
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.
- Scaffold Quarkus 3.39.2 (Java 21, Maven) with rest-jackson and smallrye-health
- Add GET /status returning application uptime, version and JVM metrics
- Add ApplicationHealthCheck (@Readiness) exposing /q/health/ready
- Configure application name, version and health root path
- Cover endpoints with StatusResourceTest (@QuarkusTest + rest-assured)