You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The generation of native binaries requires an installation of GraalVM 22.1.0+.
51
52
52
53
You can build a native binary using Maven as follows:
53
54
54
-
```
55
+
[source,bash]
56
+
----
55
57
mvn -Pnative-image install -DskipTests
56
-
```
58
+
----
57
59
58
60
The generation of the executable binary may take a few minutes to complete depending on
59
61
your hardware and operating system. When completed, the executable file will be available
60
62
under the `target` directory and be named after the artifact ID you have chosen during the
61
63
project generation phase.
62
64
65
+
== Try metrics
63
66
64
-
65
-
## Try metrics
66
-
67
-
```
67
+
[source,bash]
68
+
----
68
69
# Prometheus Format
69
70
curl -s -X GET http://localhost:8080/metrics
70
71
# TYPE base:gc_g1_young_generation_count gauge
@@ -74,85 +75,86 @@ curl -s -X GET http://localhost:8080/metrics
74
75
curl -H 'Accept: application/json' -X GET http://localhost:8080/metrics
75
76
{"base":...
76
77
. . .
77
-
```
78
-
78
+
----
79
79
80
+
== Building the Docker Image
80
81
81
-
## Building the Docker Image
82
-
83
-
```
82
+
[source,bash]
83
+
----
84
84
docker build -t intro-helidon-mongodb .
85
-
```
85
+
----
86
86
87
-
## Running the Docker Image
87
+
== Running the Docker Image
88
88
89
-
```
89
+
[source,bash]
90
+
----
90
91
docker run --rm -p 8080:8080 intro-helidon-mongodb:latest
91
-
```
92
+
----
92
93
93
94
Exercise the application as described above.
94
-
95
95
96
-
## Run the application in Kubernetes
96
+
== Run the application in Kubernetes
97
97
98
-
If you don’t have access to a Kubernetes cluster, you can [install one](https://helidon.io/docs/latest/#/about/kubernetes) on your desktop.
98
+
If you don’t have access to a Kubernetes cluster, you can install one by following the link: https://helidon.io/docs/latest/#/about/kubernetes[install Kubernetes on your desktop].
99
99
100
-
### Verify connectivity to cluster
100
+
=== Verify connectivity to cluster
101
101
102
-
```
102
+
[source,bash]
103
+
----
103
104
kubectl cluster-info # Verify which cluster
104
105
kubectl get pods # Verify connectivity to cluster
105
-
```
106
+
----
106
107
107
-
### Deploy the application to Kubernetes
108
+
=== Deploy the application to Kubernetes
108
109
109
-
```
110
+
[source,bash]
111
+
----
110
112
kubectl create -f app.yaml # Deploy application
111
113
kubectl get pods # Wait for quickstart pod to be RUNNING
112
-
kubectl get service intro-helidon-mongodb # Get service info
114
+
kubectl get service intro-helidon-mongodb # Get service info
113
115
kubectl port-forward service/intro-helidon-mongodb 8081:8080 # Forward service port to 8081
114
-
```
116
+
----
115
117
116
118
You can now exercise the application as you did before but use the port number 8081.
117
119
118
-
After you’re done, cleanup.
120
+
After you’re done, cleanup:
119
121
120
-
```
122
+
[source,bash]
123
+
----
121
124
kubectl delete -f app.yaml
122
-
```
123
-
125
+
----
124
126
125
-
## Building a Custom Runtime Image
127
+
== Building a Custom Runtime Image
126
128
127
-
Build the custom runtime image using the jlink image profile:
129
+
Build the custom runtime image using the `jlink` image profile:
128
130
129
-
```
131
+
[source,bash]
132
+
----
130
133
mvn package -Pjlink-image
131
-
```
134
+
----
132
135
133
-
This uses the helidon-maven-plugin to perform the custom image generation.
134
-
After the build completes it will report some statistics about the build including the reduction in image size.
136
+
This uses the `helidon-maven-plugin` to perform the custom image generation. After the build completes it will report some statistics about the build including the reduction in image size.
135
137
136
-
The target/intro-helidon-mongodb-jri directory is a self contained custom image of your application. It contains your application,
137
-
its runtime dependencies and the JDK modules it depends on. You can start your application using the provide start script:
138
+
The `target/intro-helidon-mongodb-jri` directory is a self-contained custom image of your application. It contains your application, its runtime dependencies, and the JDK modules it depends on. You can start your application using the provided start script:
138
139
139
-
```
140
+
[source,bash]
141
+
----
140
142
./target/intro-helidon-mongodb-jri/bin/start
141
-
```
143
+
----
144
+
145
+
=== Class Data Sharing (CDS) Archive
142
146
143
-
Class Data Sharing (CDS) Archive
144
147
Also included in the custom image is a Class Data Sharing (CDS) archive that improves your application’s startup
145
148
performance and in-memory footprint. You can learn more about Class Data Sharing in the JDK documentation.
146
149
147
150
The CDS archive increases your image size to get these performance optimizations. It can be of significant size (tens of MB).
148
151
The size of the CDS archive is reported at the end of the build output.
149
152
150
-
If you’d rather have a smaller image size (with a slightly increased startup time) you can skip the creation of the CDS
151
-
archive by executing your build like this:
153
+
If you’d rather have a smaller image size (with a slightly increased startup time) you can skip the creation of the CDS archive by executing your build like this:
0 commit comments