The Factor - Quarkus Source Code Generator - Part 2
The Factor - Quarkus Source Code Generator - Part 2
TOC :
00:43 Quarkus Docker in JVM & openjdk-17:1.15
05:15 Quarkus Docker in JVM Legacy JAR & openjdk-17:1.15
09:24 Quarkus Docker in Native & ubi-minimal:8.6
14:00 Quarkus Docker in Native & quarkus-micro-image:2.0
18:43 Quarkus Docker in Native & quarkus-distroless-image:2.0
22:52 Quarkus Docker in Native Multistage (Use in CICD Platform)
This video is Part #2 of The Factor - Quarkus Source Code Generator.
You can see Part #1 on https://youtu.be/NoiiIOyJOCY
A. Quarkus Docker in JVM & openjdk-17:1.15:
1. This image uses the ‘run-java.sh’ script to run the application, includes memory/GC tuning, and debug mode.
2. Create four distinct layers so if there are application changes the library layers can be re-used
3. Build the application:
./mvnw package -DskipTests
4. Build the image:
docker build -f src/main/docker/Dockerfile.jvm -t quarkus/realworld-api-quarkus-jvm .
5. Run the container:
docker run -i --rm -p 8080:8080 quarkus/realworld-api-quarkus-jvm
B. Quarkus Docker in JVM Legacy JAR & openjdk-17:1.15:
1. This image uses the ‘run-java.sh’ script to run the application, includes memory/GC tuning, and debug mode.
2. Build the application:
./mvnw package -Dquarkus.package.type=legacy-jar -DskipTests
3. Build the image:
docker build -f src/main/docker/Dockerfile.legacy-jar -t quarkus/realworld-api-quarkus-legacy-jar .
4. Run the container:
docker run -i --rm -p 8081:8080 quarkus/realworld-api-quarkus-legacy-jar
C. Quarkus Docker in Native & ubi-minimal:8.6:
1. Build a container that runs the Quarkus application in native (no JVM) mode.
2. For Quarkus 2.9.2, the compatible version of GraalVM is 21.3.0. Please note to always check the compatibility between Quarkus version and GraalVM version.
3. In Mac OS, don't use './mvnw package -Pnative' and build image using image that based on Linux, it will error 'exec format error', because different OS platform.
4. Always check the .dockerignore file, if it has issues on 'failed to compute cache key not found' during docker build.
5. Build the native application inside the container image: (Creating a Linux executable without GraalVM installed locally)
./mvnw install -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=docker -Dquarkus.native.builder-image=graalvm -DskipTests -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel-builder-image:21.3.6.0-Final-java11-arm64
6. Build the image:
docker build -f src/main/docker/Dockerfile.native -t quarkus/realworld-api-quarkus-native .
7. Run the container:
docker run -i --rm -p 8082:8080 quarkus/realworld-api-quarkus-native
D. Quarkus Docker in Native & quarkus-micro-image:2.0
1. It uses a micro base image, It reduces the size of container image.
2. Build the native application inside the container image: (Creating a Linux executable without GraalVM installed locally)
./mvnw install -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=docker -Dquarkus.native.builder-image=graalvm -DskipTests -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel-builder-image:21.3.6.0-Final-java11-arm64
3. Build the image:
docker build -f src/main/docker/Dockerfile.native-micro -t quarkus/realworld-api-quarkus-native-micro .
4. Run the container:
docker run -i --rm -p 8083:8080 quarkus/realworld-api-quarkus-native-micro
E. Quarkus Docker in Native & quarkus-distroless-image:2.0
1. If you are looking for small container images, the distroless approach reduces the size of the base layer. Distroless image support is experimental. Distroless images should not be used in production without rigorous testing.
2. Build the native application inside the container image: (Creating a Linux executable without GraalVM installed locally)
./mvnw install -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=docker -Dquarkus.native.builder-image=graalvm -DskipTests -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel-builder-image:21.3.6.0-Final-java11-arm64
3. Build the image:
docker build -f src/main/docker/Dockerfile.native-distroless -t quarkus/realworld-api-quarkus-native-distroless .
4. Run the container:
docker run -i --rm -p 8084:8080 quarkus/realworld-api-quarkus-native-distroless
F. Quarkus Docker in Native Multistage (Use in CICD Platform)
1. Build the native application and build the image:
docker build -f src/main/docker/Dockerfile.native.multistage -t quarkus/realworld-api-quarkus-native-multistage .
2. Run the container:
docker run -i --rm -p 8085:8080 quarkus/realworld-api-quarkus-native-multistage
Build First Time (s) 206.7
Build Second Time (s) 1.6
Start Up Time (s) 0.058
Image Size (MB) 117.34
CPU (%) 0.01
RAM (MB) 6.2
Thanks:
Allah SWT
My Family
github.com/gothinkster/realworld
github.com/diegocamara/realworld-api-quarkus
Royalty Free Music: bensound.com
License code: YHJPVXAU7WDPC6XN
Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «The Factor - Quarkus Source Code Generator - Part 2», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.
Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.
Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!
Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.