end graalvm development without undertow and without spring boot dev tool
This commit is contained in:
parent
1484b129b9
commit
2ccd2b0d28
@ -16,13 +16,14 @@ ADD src/ /build/src/
|
||||
ADD Makefile /build
|
||||
|
||||
# download dependencies and compile into layer
|
||||
RUN ./mvnw -Pgraal compile
|
||||
RUN ./mvnw -Pgraal,-no-graal compile
|
||||
|
||||
# generate graalvm image into another layer
|
||||
RUN ./mvnw -Pgraal package
|
||||
RUN ./mvnw -Pgraal,-no-graal package
|
||||
|
||||
#FROM debian:buster
|
||||
FROM scratch
|
||||
COPY --from=builder /build/target/wikiProject /wikiproject
|
||||
COPY --from=builder /build/target/wiki-project /wikiproject
|
||||
#COPY --from=builder /build/target/wiki-project-1.0-SNAPSHOT.jar /wiki-project-1.0-SNAPSHOT.jar
|
||||
COPY --from=builder /tmp /tmp
|
||||
ENTRYPOINT ["/wikiproject"]
|
||||
|
1
Makefile
1
Makefile
@ -26,4 +26,5 @@ docker-graal-build:
|
||||
|
||||
docker-graal-run: RUN_PORT=8080
|
||||
docker-graal-run:
|
||||
echo "$(firstword $(MAKECMDGOALS))"
|
||||
docker run --rm -p 8080:$(RUN_PORT) docker.registry:5000/wikiproject-native --server.port=$(RUN_PORT)
|
||||
|
46
pom.xml
46
pom.xml
@ -11,10 +11,10 @@
|
||||
<version>2.3.2.RELEASE</version>
|
||||
</parent>
|
||||
|
||||
<groupId>fr.antoine-roux</groupId>
|
||||
<artifactId>wikiProject</artifactId>
|
||||
<groupId>tk.antoine-roux</groupId>
|
||||
<artifactId>wiki-project</artifactId>
|
||||
<version>${revision}</version>
|
||||
<name>wikiProject</name>
|
||||
<name>wiki-project</name>
|
||||
<description>project use wikipedia streaming api https://stream.wikimedia.org/?doc#/Streams/get_v2_stream_test
|
||||
</description>
|
||||
|
||||
@ -42,23 +42,17 @@
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
<!-- <exclusions>-->
|
||||
<!-- <exclusion>-->
|
||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
||||
<!-- <artifactId>spring-boot-starter-tomcat</artifactId>-->
|
||||
<!-- </exclusion>-->
|
||||
<!-- </exclusions>-->
|
||||
<!-- <exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-tomcat</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>-->
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
||||
<!-- <artifactId>spring-boot-starter-undertow</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
||||
<!-- <artifactId>spring-boot-devtools</artifactId>-->
|
||||
<!-- <scope>runtime</scope>-->
|
||||
<!-- <optional>true</optional>-->
|
||||
<!-- </dependency>-->
|
||||
<!-- <dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-undertow</artifactId>
|
||||
</dependency>-->
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
@ -113,6 +107,20 @@
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>no-graal</id>
|
||||
<activation>
|
||||
<activeByDefault>true</activeByDefault>
|
||||
</activation>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-devtools</artifactId>
|
||||
<scope>runtime</scope>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>graal</id>
|
||||
<dependencies>
|
||||
|
@ -1,8 +0,0 @@
|
||||
Args=\
|
||||
-Dspring.native.mode=feature \
|
||||
-Dspring.native.verbose=true \
|
||||
-Dspring.native.dump-config=/tmp/computed-reflect-config.json \
|
||||
-Dspring.native.remove-unused-autoconfig=true
|
||||
|
||||
# -H:ReflectionConfigurationResources=${.}/reflect-config.json
|
||||
# -Dspring.graal.skip-logback=true
|
@ -0,0 +1,8 @@
|
||||
Arg=\
|
||||
--native-image-info \
|
||||
-H:ReflectionConfigurationFiles=/build/target/classes/META-INF/native-image/tk.antoine-roux/wiki-project/reflection-config.json \
|
||||
-Dspring.native.mode=feature \
|
||||
-Dspring.native.verbose=false \
|
||||
-Dspring.native.dump-config=/tmp/computed-reflect-config.json \
|
||||
-Dspring.native.remove-unused-autoconfig=true \
|
||||
-Dspring.graal.skip-logback=false
|
@ -10,3 +10,5 @@
|
||||
"allDeclaredMethods": true
|
||||
}
|
||||
]
|
||||
|
||||
|
133
trace.md
133
trace.md
@ -1,133 +0,0 @@
|
||||
____ _ _____ _
|
||||
/ ___| _ __ _ __(_)_ __ __ _ | ___|__ __ _| |_ _ _ _ __ ___
|
||||
\___ \| '_ \| '__| | '_ \ / _` | | |_ / _ \/ _` | __| | | | '__/ _ \
|
||||
___) | |_) | | | | | | | (_| | | _| __/ (_| | |_| |_| | | | __/
|
||||
|____/| .__/|_| |_|_| |_|\__, | |_| \___|\__,_|\__|\__,_|_| \___|
|
||||
|_| |___/
|
||||
|
||||
Feature operating in FEATURE mode
|
||||
Removing unused configurations
|
||||
Use -Dspring.native.verbose=true on native-image call to see more detailed information from the feature
|
||||
[wikiProject:91] (cap): 741.54 ms, 1.18 GB
|
||||
WARNING: Could not resolve org.springframework.boot.loader.LaunchedURLClassLoader for reflection configuration.
|
||||
Found #6 types in static reflection list to register
|
||||
Skipping #6 types not on the classpath
|
||||
Attempting proxy registration of #16 proxies
|
||||
Skipped registration of #9 proxies - relevant types not on classpath
|
||||
[wikiProject:91] setup: 2,324.54 ms, 1.18 GB
|
||||
Registering resources - #35 patterns
|
||||
Registering resources - #2 bundles
|
||||
Processing META-INF/spring.factories files...
|
||||
spring.factories processing, problem adding access for key org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer: javax/validation/ValidationException
|
||||
Processing spring.factories - ApplicationListener lists #10 application listeners
|
||||
Processing spring.factories - PropertySourceLoader lists #2 property source loaders
|
||||
spring.factories processing, problem adding access for key org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer: org/springframework/jdbc/CannotGetJdbcConnectionException
|
||||
Processing spring.factories - ApplicationListener lists #0 application listeners
|
||||
Processing spring.factories - EnableAutoConfiguration lists #127 configurations
|
||||
Excluding 102 auto-configurations from spring.factories file
|
||||
WARNING: unable to trim META-INF/spring.factories (for example to disable unused auto configurations) because an existing resource-config is directly including it: /build/target/wikiProject-1.0-SNAPSHOT.jar!META-INF/native-image/resource-config.json
|
||||
Processing spring.factories - ApplicationListener lists #1 application listeners
|
||||
Processing existing META-INF/spring.components files...
|
||||
Registered 1 entries
|
||||
Configuring initialization time for specific types and packages:
|
||||
#88 buildtime-init-classes #23 buildtime-init-packages #33 runtime-init-classes #1 runtime-init-packages
|
||||
|
||||
Warning: class initialization of class org.springframework.boot.validation.MessageInterpolatorFactory failed with exception java.lang.NoClassDefFoundError: javax/validation/ValidationException. This class will be initialized at run time because option --allow-incomplete-classpath is used for image building. Use the option --initialize-at-run-time=org.springframework.boot.validation.MessageInterpolatorFactory to explicitly request delayed initialization of this class.
|
||||
Number of types dynamically registered for reflective access: #2024
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
|
||||
WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
|
||||
Warning: class initialization of class org.springframework.boot.validation.MessageInterpolatorFactory failed with exception java.lang.NoClassDefFoundError: javax/validation/ValidationException. This class will be initialized at run time because option --allow-incomplete-classpath is used for image building. Use the option --initialize-at-run-time=org.springframework.boot.validation.MessageInterpolatorFactory to explicitly request delayed initialization of this class.
|
||||
Number of types dynamically registered for reflective access: #2024
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
|
||||
WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fiWARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
|
||||
WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
|
||||
WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
|
||||
[wikiProject:91] (clinit): 6,528.65 ms, 2.67 GB
|
||||
[wikiProject:91] (typeflow): 331,780.47 ms, 2.67 GB
|
||||
[wikiProject:91] (objects): 128,127.89 ms, 2.67 GB
|
||||
[wikiProject:91] (features): 8,933.99 ms, 2.67 GB
|
||||
[wikiProject:91] analysis: 485,228.58 ms, 2.67 GB
|
||||
[wikiProject:91] universe: 17,923.31 ms, 2.67 GB
|
||||
[wikiProject:91] (parse): 10,750.64 ms, 2.13 GB
|
||||
[wikiProject:91] (inline): 11,753.82 ms, 2.67 GB
|
||||
[wikiProject:91] (compile): 56,270.16 ms, 2.71 GB
|
||||
[wikiProject:91] compile: 81,957.83 ms, 2.71 GB
|
||||
[wikiProject:91] image: 9,000.77 ms, 2.48 GB
|
||||
[wikiProject:91] write: 1,158.10 ms, 2.48 GB
|
||||
[wikiProject:91] [total]: 605,656.30 ms, 2.48 GB
|
||||
[INFO]
|
||||
[INFO] --- spring-boot-maven-plugin:2.3.2.RELEASE:repackage (repackage) @ wikiProject ---
|
||||
[INFO] Replacing main artifact with repackaged archive
|
||||
[INFO] ------------------------------------------------------------------------
|
||||
[INFO] BUILD SUCCESS
|
||||
[INFO] ------------------------------------------------------------------------
|
||||
[INFO] Total time: 10:40 min
|
||||
[INFO] Finished at: 2020-08-17T22:31:28Z
|
||||
[INFO] ------------------------------------------------------------------------
|
||||
Removing intermediate container a8338a0f8da1
|
||||
---> 8102c76cc125
|
||||
Step 12/14 : FROM debian:buster
|
||||
buster: Pulling from library/debian
|
||||
d6ff36c9ec48: Pull complete
|
||||
Digest: sha256:1e74c92df240634a39d050a5e23fb18f45df30846bb222f543414da180b47a5d
|
||||
Status: Downloaded newer image for debian:buster
|
||||
---> ee11c54e6bb7
|
||||
Step 13/14 : COPY --from=builder /build/target/wikiProject /wikiproject
|
||||
---> a214080a74d7
|
||||
Step 14/14 : ENTRYPOINT ["/wikiproject"]
|
||||
---> Running in ae1caf05bf0b
|
||||
Removing intermediate container ae1caf05bf0b
|
||||
---> 163f952c5bba
|
||||
Successfully built 163f952c5bba
|
||||
Successfully tagged docker.registry:5000/wikiproject-native:latest
|
Loading…
Reference in New Issue
Block a user