Giter Club home page Giter Club logo

quarkus-images's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quarkus-images's Issues

Configurable `workingDir` with s2i images

The current s2i assemble script does use cd /tmp/src as the path before triggering the maven build, it will be nice to have the /tmp/src/ configurable to allow builds using the image to set them via env variable.

e.g. SRC_DIR=${SRC_DIR:-'/tmp/src'}

CC: @cescoffier

Document how to contribute

I wanted to send a PR to upgrade to GraalVM rc16 but it seems master doesn't include any of the recent changes which I can see in other recent tags (such as rc14 and rc15).

What's the process? Please document it.

Latest centos-quarkus-maven image update results in Error: Detected a MBean server in the image heap.

After update to the centos-quarkus-maven:20.2.0-java11 on 27 January, application no longer builds with the following messages:
Same application was building and working successfully with the previous version of the given image.
Application code is instructed not to use jmx server, which was working previously, clearly indicating some braking change in this version of the image.

Error: Unsupported features in 2 methods
Detailed message:
Error: Detected a MBean server in the image heap. This is currently not supported, but could be changed in the future. Management beans are registered in many global caches that would need to be cleared and properly re-built at image build time. Class of disallowed object: com.sun.jmx.mbeanserver.JmxMBeanServer To see how this object got instantiated use -H:+TraceClassInitialization. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image run time by using the option --initialize-at-run-time=. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
indexing into array
constant java.lang.Object[]@1aab8308 reached by
reading field java.util.ArrayList.elementData of
constant java.util.ArrayList@5ae9f4d reached by
scanning method javax.management.MBeanServerFactory.addMBeanServer(MBeanServerFactory.java:418)
Call path from entry point to javax.management.MBeanServerFactory.addMBeanServer(MBeanServer):
at javax.management.MBeanServerFactory.addMBeanServer(MBeanServerFactory.java:418)
at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:232)
at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:192)
at com.oracle.svm.core.jdk.management.ManagementSupport.getPlatformMBeanServer(ManagementSupport.java:250)
at com.oracle.svm.core.jdk.management.Target_java_lang_management_ManagementFactory.getPlatformMBeanServer(Target_java_lang_management_ManagementFactory.java:45)
at org.apache.commons.pool2.impl.BaseGenericObjectPool.jmxUnregister(BaseGenericObjectPool.java:1018)
at org.apache.commons.pool2.impl.GenericObjectPool.close(GenericObjectPool.java:694)
at com.oracle.svm.core.posix.NativeSecureRandomFilesCloser$1.close(PosixSunSecuritySubstitutions.java:82)
at com.oracle.svm.core.posix.NativeSecureRandomFilesCloser$1.run(PosixSunSecuritySubstitutions.java:66)
at java.lang.Thread.run(Thread.java:834)
at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:517)
at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Error: type is not available in this platform: org.graalvm.compiler.hotspot.management.AggregatedMemoryPoolBean
Trace: Object was reached by
reading field java.lang.ref.Reference.referent of
constant java.util.WeakHashMap$Entry@7417cc7d reached by
indexing into array
constant java.util.WeakHashMap$Entry[]@74ea1cf8 reached by
reading field java.util.WeakHashMap.table of
constant com.sun.jmx.mbeanserver.MBeanIntrospector$MBeanInfoMap@6c909167 reached by
scanning method com.sun.jmx.mbeanserver.MXBeanIntrospector.getMBeanInfoMap(MXBeanIntrospector.java:68)
Call path from entry point to com.sun.jmx.mbeanserver.MXBeanIntrospector.getMBeanInfoMap():
at com.sun.jmx.mbeanserver.MXBeanIntrospector.getMBeanInfoMap(MXBeanIntrospector.java:68)
at com.sun.jmx.mbeanserver.MBeanIntrospector.getClassMBeanInfo(MBeanIntrospector.java:416)
at com.sun.jmx.mbeanserver.MBeanIntrospector.getMBeanInfo(MBeanIntrospector.java:392)
at com.sun.jmx.mbeanserver.MBeanSupport.(MBeanSupport.java:139)
at com.sun.jmx.mbeanserver.MXBeanSupport.(MXBeanSupport.java:66)
at com.sun.jmx.mbeanserver.Introspector.makeDynamicMBean(Introspector.java:203)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:888)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:320)
at com.sun.jmx.mbeanserver.JmxMBeanServer$2.run(JmxMBeanServer.java:1225)
at com.oracle.svm.core.jdk.Target_java_security_AccessController.doPrivileged(SecuritySubstitutions.java:119)
at java.net.Socket.getOutputStream(Socket.java:969)
at org.jboss.logmanager.handlers.TcpOutputStream.flush(TcpOutputStream.java:214)
at java.io.PrintStream.flush(PrintStream.java:417)
at com.oracle.svm.jni.functions.JNIFunctions.ExceptionDescribe(JNIFunctions.java:772)
at com.oracle.svm.core.code.IsolateEnterStub.JNIFunctions_ExceptionDescribe_b5412f7570bccae90b000bc37855f00408b2ad73(generated:0)

com.oracle.svm.core.util.UserError$UserException: Unsupported features in 2 methods
Detailed message:
Error: Detected a MBean server in the image heap. This is currently not supported, but could be changed in the future. Management beans are registered in many global caches that would need to be cleared and properly re-built at image build time. Class of disallowed object: com.sun.jmx.mbeanserver.JmxMBeanServer To see how this object got instantiated use -H:+TraceClassInitialization. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image run time by using the option --initialize-at-run-time=. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
indexing into array
constant java.lang.Object[]@1aab8308 reached by
reading field java.util.ArrayList.elementData of
constant java.util.ArrayList@5ae9f4d reached by
scanning method javax.management.MBeanServerFactory.addMBeanServer(MBeanServerFactory.java:418)
Call path from entry point to javax.management.MBeanServerFactory.addMBeanServer(MBeanServer):
at javax.management.MBeanServerFactory.addMBeanServer(MBeanServerFactory.java:418)
at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:232)
at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:192)
at com.oracle.svm.core.jdk.management.ManagementSupport.getPlatformMBeanServer(ManagementSupport.java:250)
at com.oracle.svm.core.jdk.management.Target_java_lang_management_ManagementFactory.getPlatformMBeanServer(Target_java_lang_management_ManagementFactory.java:45)
at org.apache.commons.pool2.impl.BaseGenericObjectPool.jmxUnregister(BaseGenericObjectPool.java:1018)
at org.apache.commons.pool2.impl.GenericObjectPool.close(GenericObjectPool.java:694)
at com.oracle.svm.core.posix.NativeSecureRandomFilesCloser$1.close(PosixSunSecuritySubstitutions.java:82)
at com.oracle.svm.core.posix.NativeSecureRandomFilesCloser$1.run(PosixSunSecuritySubstitutions.java:66)
at java.lang.Thread.run(Thread.java:834)
at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:517)
at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Error: type is not available in this platform: org.graalvm.compiler.hotspot.management.AggregatedMemoryPoolBean
Trace: Object was reached by
reading field java.lang.ref.Reference.referent of
constant java.util.WeakHashMap$Entry@7417cc7d reached by
indexing into array
constant java.util.WeakHashMap$Entry[]@74ea1cf8 reached by
reading field java.util.WeakHashMap.table of
constant com.sun.jmx.mbeanserver.MBeanIntrospector$MBeanInfoMap@6c909167 reached by
scanning method com.sun.jmx.mbeanserver.MXBeanIntrospector.getMBeanInfoMap(MXBeanIntrospector.java:68)
Call path from entry point to com.sun.jmx.mbeanserver.MXBeanIntrospector.getMBeanInfoMap():
at com.sun.jmx.mbeanserver.MXBeanIntrospector.getMBeanInfoMap(MXBeanIntrospector.java:68)
at com.sun.jmx.mbeanserver.MBeanIntrospector.getClassMBeanInfo(MBeanIntrospector.java:416)
at com.sun.jmx.mbeanserver.MBeanIntrospector.getMBeanInfo(MBeanIntrospector.java:392)
at com.sun.jmx.mbeanserver.MBeanSupport.(MBeanSupport.java:139)
at com.sun.jmx.mbeanserver.MXBeanSupport.(MXBeanSupport.java:66)
at com.sun.jmx.mbeanserver.Introspector.makeDynamicMBean(Introspector.java:203)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:888)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:320)
at com.sun.jmx.mbeanserver.JmxMBeanServer$2.run(JmxMBeanServer.java:1225)
at com.oracle.svm.core.jdk.Target_java_security_AccessController.doPrivileged(SecuritySubstitutions.java:119)
at java.net.Socket.getOutputStream(Socket.java:969)
at org.jboss.logmanager.handlers.TcpOutputStream.flush(TcpOutputStream.java:214)
at java.io.PrintStream.flush(PrintStream.java:417)
at com.oracle.svm.jni.functions.JNIFunctions.ExceptionDescribe(JNIFunctions.java:772)
at com.oracle.svm.core.code.IsolateEnterStub.JNIFunctions_ExceptionDescribe_b5412f7570bccae90b000bc37855f00408b2ad73(generated:0)

at com.oracle.svm.core.util.UserError.abort(UserError.java:79)
at com.oracle.svm.hosted.FallbackFeature.reportAsFallback(FallbackFeature.java:217)
at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:765)
at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:555)
at com.oracle.svm.hosted.NativeImageGenerator.lambda$run$0(NativeImageGenerator.java:468)
at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1407)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Unsupported features in 2 methods
Detailed message:
Error: Detected a MBean server in the image heap. This is currently not supported, but could be changed in the future. Management beans are registered in many global caches that would need to be cleared and properly re-built at image build time. Class of disallowed object: com.sun.jmx.mbeanserver.JmxMBeanServer To see how this object got instantiated use -H:+TraceClassInitialization. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image run time by using the option --initialize-at-run-time=. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
indexing into array
constant java.lang.Object[]@1aab8308 reached by
reading field java.util.ArrayList.elementData of
constant java.util.ArrayList@5ae9f4d reached by
scanning method javax.management.MBeanServerFactory.addMBeanServer(MBeanServerFactory.java:418)
Call path from entry point to javax.management.MBeanServerFactory.addMBeanServer(MBeanServer):
at javax.management.MBeanServerFactory.addMBeanServer(MBeanServerFactory.java:418)
at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:232)
at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:192)
at com.oracle.svm.core.jdk.management.ManagementSupport.getPlatformMBeanServer(ManagementSupport.java:250)
at com.oracle.svm.core.jdk.management.Target_java_lang_management_ManagementFactory.getPlatformMBeanServer(Target_java_lang_management_ManagementFactory.java:45)
at org.apache.commons.pool2.impl.BaseGenericObjectPool.jmxUnregister(BaseGenericObjectPool.java:1018)
at org.apache.commons.pool2.impl.GenericObjectPool.close(GenericObjectPool.java:694)
at com.oracle.svm.core.posix.NativeSecureRandomFilesCloser$1.close(PosixSunSecuritySubstitutions.java:82)
at com.oracle.svm.core.posix.NativeSecureRandomFilesCloser$1.run(PosixSunSecuritySubstitutions.java:66)
at java.lang.Thread.run(Thread.java:834)
at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:517)
at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Error: type is not available in this platform: org.graalvm.compiler.hotspot.management.AggregatedMemoryPoolBean
Trace: Object was reached by
reading field java.lang.ref.Reference.referent of
constant java.util.WeakHashMap$Entry@7417cc7d reached by
indexing into array
constant java.util.WeakHashMap$Entry[]@74ea1cf8 reached by
reading field java.util.WeakHashMap.table of
constant com.sun.jmx.mbeanserver.MBeanIntrospector$MBeanInfoMap@6c909167 reached by
scanning method com.sun.jmx.mbeanserver.MXBeanIntrospector.getMBeanInfoMap(MXBeanIntrospector.java:68)
Call path from entry point to com.sun.jmx.mbeanserver.MXBeanIntrospector.getMBeanInfoMap():
at com.sun.jmx.mbeanserver.MXBeanIntrospector.getMBeanInfoMap(MXBeanIntrospector.java:68)
at com.sun.jmx.mbeanserver.MBeanIntrospector.getClassMBeanInfo(MBeanIntrospector.java:416)
at com.sun.jmx.mbeanserver.MBeanIntrospector.getMBeanInfo(MBeanIntrospector.java:392)
at com.sun.jmx.mbeanserver.MBeanSupport.(MBeanSupport.java:139)
at com.sun.jmx.mbeanserver.MXBeanSupport.(MXBeanSupport.java:66)
at com.sun.jmx.mbeanserver.Introspector.makeDynamicMBean(Introspector.java:203)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:888)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:320)
at com.sun.jmx.mbeanserver.JmxMBeanServer$2.run(JmxMBeanServer.java:1225)
at com.oracle.svm.core.jdk.Target_java_security_AccessController.doPrivileged(SecuritySubstitutions.java:119)
at java.net.Socket.getOutputStream(Socket.java:969)
at org.jboss.logmanager.handlers.TcpOutputStream.flush(TcpOutputStream.java:214)
at java.io.PrintStream.flush(PrintStream.java:417)
at com.oracle.svm.jni.functions.JNIFunctions.ExceptionDescribe(JNIFunctions.java:772)
at com.oracle.svm.core.code.IsolateEnterStub.JNIFunctions_ExceptionDescribe_b5412f7570bccae90b000bc37855f00408b2ad73(generated:0)

at com.oracle.graal.pointsto.constraints.UnsupportedFeatures.report(UnsupportedFeatures.java:129)
at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:762)
... 8 more

Error: Image build request failed with exit status 1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

CI Build Broken due to microdnf failure

2021-03-21 08:10:17,014 docker_builder.py:108        INFO  Docker: Step 4/32 : RUN microdnf --setopt=install_weak_deps=0 --setopt=tsflags=nodocs install -y tar gzip gcc glibc-devel zlib-devel shadow-utils unzip gcc-c++             && microdnf clean all             && rpm -q tar gzip gcc glibc-devel zlib-devel shadow-utils unzip gcc-c++
2021-03-21 08:10:17,014 docker_builder.py:108        INFO  Docker: 
2021-03-21 08:10:17,034 docker_builder.py:108        INFO  Docker: ---> Running in e6de140d97eb
2021-03-21 08:10:17,510 docker_builder.py:108        INFO  Docker: (process:7): librhsm-WARNING **: 08:10:17.509: Found 0 entitlement certificates
2021-03-21 08:10:17,518 docker_builder.py:108        INFO  Docker: (process:7): librhsm-WARNING **: 08:10:17.518: Found 0 entitlement certificates
2021-03-21 08:10:17,524 docker_builder.py:108        INFO  Docker: error: (--setopt) Unable to handle: install_weak_deps=0
2021-03-21 08:10:17,715 docker_builder.py:141        ERROR You can look inside the failed image by running 'docker run --rm -ti 6a5952d6a628 bash'
2021-03-21 08:10:17,715 cli.py:345        ERROR Image build failed, see logs above.

I didn't have the time to investigate.

s2i builder should use commonly used paths

Most official S2I builder images created by RH put the S2I scripts in /usr/libexec/s2i while the Quarkus S2I builders use a different path /usr/local/s2i.

This is indeed supported by S2I but it seems that some tools (in my case http://quay.io/openshift-pipeline/s2i which is an image that runs s2i) just assume the paths are always the same and have them hard-coded. This might also be because inspecting the builder image for the label that defines the correct path is sometimes hard.

Now of course those tools should be fixed, but at the same time I think the Quarkus S2I builder images should not deviate from the commonly used values without good reason.

Unsupported Encoding Exception JIS_X_0212

I am trying to build native executable for a simple java application with quay.io/quarkus/ubi-quarkus-native-image:20.1.0-java11
What I get is an error

Fatal error:com.oracle.graal.pointsto.util.AnalysisError$ParsingError: Error encountered while parsing sun.nio.cs.JIS_X_0212.newEncoder()
Parsing context:
        parsing java.lang.StringCoding.encode(StringCoding.java:444)
        parsing java.lang.String.getBytes(String.java:964)

< a lot of stacktrace >
Caused by: com.oracle.svm.core.util.VMError$HostedError: Could not find non-initialized charset JIS_X_0212.java                                                                                                          at com.oracle.svm.core.util.VMError.shouldNotReachHere(VMError.java:76)
        at com.oracle.svm.core.jdk.LocalizationFeature$CharsetNodePlugin.handleInvoke(LocalizationFeature.java:125)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.tryNodePluginForInvocation(BytecodeParser.java:2216)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.appendInvoke(BytecodeParser.java:1904)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genInvokeStatic(BytecodeParser.java:1682)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genInvokeStatic(BytecodeParser.java:1662)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5340)                                                                                                   at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3423)
        ... 24 more
Caused by: java.nio.charset.UnsupportedCharsetException: JIS_X_0212
        at java.base/java.nio.charset.Charset.forName(Charset.java:529)
        at com.oracle.svm.core.jdk.LocalizationFeature$CharsetNodePlugin.handleInvoke(LocalizationFeature.java:122)
        ... 30 more

What could be done to alleviate it ? This seems like it could be something other people stumbled upon. My application has nothing to do with charsets or Japanese.

s2i native image builder doesn't respect multi-module project

The assemble script in the quarkus-native-s2i-scripts builder image always assumes that an artifact is in the target directory of a maven build.

# lines 34 - 37
BUILD_DIR=target
mvn package -Pnative -e -B \
    -DskipTests -Dmaven.javadoc.skip=true -Dmaven.site.skip=true -Dmaven.source.skip=true \
    -Djacoco.skip=true -Dcheckstyle.skip=true -Dfindbugs.skip=true -Dpmd.skip=true -Dfabric8.skip=true

# line 41
cp -v ${BUILD_DIR}/*-runner ${QUARKUS_HOME}/application

Using environment variables a user can tell maven to only build a sub-module, and in that case the built artifact won't be in target. Instead it'll be in <sub_module_path>/target.

See an ongoing discussion in kenfinnigan/kraken-demo#2 around this issue.

S2I Java (non-native) is broken since Quarkus 0.13.0 or 0.13.1 (but worked in 0.12.0)

@tqvarnst reports that the S2I Java support is broken. (That is the non-native regular pure Java one, based on the registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift S2I builder image; as documented in Deploying the application as Java application in OpenShift on https://quarkus.io/guides/openshift-s2i-guide)

I can easily locally reproduce the problem Thomas reported, but it's not trivial for me to fix it alone - let's use this issue to find the solution; I'll add more comments with an analysis and suggestions.

1.3.1-Final quarkus projects are not working anymore with the latest release of centos-quarkus-maven

I have been trying to build https://github.com/quarkusio/quarkus-quickstarts/tree/master/getting-started

Before the version update, the maven build was working fine
Now it is failing:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.097 s
[INFO] Finished at: 2020-04-06T09:33:54Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:1.3.1.Final:dev (default-cli) on project getting-started: Detected Maven Version (3.6.1)  is not supported, it must be in [3.6.2,). -> [Help 1]
[ERROR]

Looks like the version 1.3.1-Final is requiring maven 3.6.2.

java.lang.UnsatisfiedLinkError: /opt/graalvm/jre/lib/amd64/libfontmanager.so

Describe the bug

Hi folks, after upgrading to Quarkus 0.18 I'm getting the error below during native image build:

[INFO] --- quarkus-maven-plugin:0.18.0:native-image (default) @ quarkus-myfaces-showcase ---
[INFO] [io.quarkus.creator.phase.nativeimage.NativeImagePhase] Running Quarkus native-image plugin on OpenJDK 64-Bit Server VM
[INFO] [io.quarkus.creator.phase.nativeimage.NativeImagePhase] docker run -v /home/PROCERGS.REDERS/rafael-pestano/projetos/quarkus-myfaces-native/quarkus-myfaces/quarkus-myfaces-showcase/target:
/project:z --rm --user 74086768:560800513 quay.io/quarkus/ubi-quarkus-native-image:19.0.2 -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager --initialize-at-build-time= -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy$BySpaceAndTime -jar quarkus-myfaces-showcase-1.0-SNAPSHOT-runner.jar -J-Djava.util.concurrent.ForkJoinPool.common.parallelism=1 -H:FallbackThreshold=0 
-H:+ReportExceptionStackTraces -H:+PrintAnalysisCallTree -H:-AddAllCharsets -H:EnableURLProtocols=http,https --enable-all-security-services -H:-SpawnIsolates -H:+JNI --no-server -H:-UseServiceLoaderFeature -H:+StackTrace

...
...
Printing list of used packages to /project/reports/used_packages_quarkus-myfaces-showcase-1.0-SNAPSHOT-runner_20190628_124854.txt
Error: Class initialization failed: sun.font.SunLayoutEngine
Detailed message:

com.oracle.svm.core.util.UserError$UserException: Class initialization failed: sun.font.SunLayoutEngine
Detailed message:

        at com.oracle.svm.core.util.UserError.abort(UserError.java:75)
        at com.oracle.svm.hosted.FallbackFeature.reportAsFallback(FallbackFeature.java:219)
        at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:733)
        at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:523)
        at com.oracle.svm.hosted.NativeImageGenerator.lambda$run$0(NativeImageGenerator.java:441)
        at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1386)
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Class initialization failed: sun.font.SunLayoutEngine
Detailed message:

        at com.oracle.graal.pointsto.constraints.UnsupportedFeatures.report(UnsupportedFeatures.java:130)
        at com.oracle.graal.pointsto.BigBang.finish(BigBang.java:564)
        at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:684)
        ... 7 more
Caused by: java.lang.UnsatisfiedLinkError: /opt/graalvm/jre/lib/amd64/libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845)
        at java.lang.Runtime.loadLibrary0(Runtime.java:870)
        at java.lang.System.loadLibrary(System.java:1122)
        at sun.font.FontManagerNativeLibrary$1.run(FontManagerNativeLibrary.java:61)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.font.FontManagerNativeLibrary.<clinit>(FontManagerNativeLibrary.java:32)
        at sun.font.SunLayoutEngine.<clinit>(SunLayoutEngine.java:108)
        at sun.misc.Unsafe.ensureClassInitialized(Native Method)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.ensureClassInitialized(ConfigurableClassInitialization.java:129)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:357)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:92)
        at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.maybeInitializeHosted(ConfigurableClassInitialization.java:120)
        at com.oracle.svm.hosted.SVMHost.registerType(SVMHost.java:179)
        at com.oracle.graal.pointsto.meta.AnalysisUniverse.createType(AnalysisUniverse.java:263)
        at com.oracle.graal.pointsto.meta.AnalysisUniverse.lookupAllowUnresolved(AnalysisUniverse.java:204)
        at com.oracle.graal.pointsto.meta.AnalysisUniverse.lookup(AnalysisUniverse.java:181)
        at com.oracle.graal.pointsto.meta.AnalysisMethod.getDeclaringClass(AnalysisMethod.java:336)
        at com.oracle.graal.pointsto.meta.AnalysisMethod.getSignature(AnalysisMethod.java:305)
        at com.oracle.graal.pointsto.flow.MethodFlowsGraph.<init>(MethodFlowsGraph.java:98)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.<init>(MethodTypeFlow.java:75)
        at com.oracle.graal.pointsto.meta.AnalysisMethod.<init>(AnalysisMethod.java:130)
        at com.oracle.graal.pointsto.meta.AnalysisUniverse.createMethod(AnalysisUniverse.java:411)
        at com.oracle.graal.pointsto.meta.AnalysisUniverse.lookupAllowUnresolved(AnalysisUniverse.java:399)
        at com.oracle.graal.pointsto.infrastructure.WrappedConstantPool.lookupMethod(WrappedConstantPool.java:115)
        at org.graalvm.compiler.java.BytecodeParser.lookupMethod(BytecodeParser.java:4272)
        at org.graalvm.compiler.java.BytecodeParser.genInvokeStatic(BytecodeParser.java:1506)
        at org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5257)
        at org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3416)
        at org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3223)
        at org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:944)
        at org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:838)
        at org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:84)
        at org.graalvm.compiler.phases.Phase.run(Phase.java:49)
        at org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:197)
        at org.graalvm.compiler.phases.Phase.apply(Phase.java:42)
        at org.graalvm.compiler.phases.Phase.apply(Phase.java:38)
        at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:214)
        at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:333)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.doParse(MethodTypeFlow.java:310)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureParsed(MethodTypeFlow.java:300)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:107)
        at com.oracle.graal.pointsto.flow.StaticInvokeTypeFlow.update(InvokeTypeFlow.java:346)
        at com.oracle.graal.pointsto.BigBang$2.run(BigBang.java:509)
        at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:171)
        at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
        ... 4 more
Error: Image build request failed with exit status 1

Locally, using graalVM I made it working by instaling this package on ubuntu 18.04:

sudo apt-get install libgtk2.0-0:i386 libidn11:i386 libglu1-mesa:i386

source: http://xhyumiracle.com/error-while-loading-shared-libraries-libfreetype-so-6/

To Reproduce

Follow instructions on this repo: https://github.com/rmpestano/quarkus-myfaces/tree/0.18

Environment (please complete the following information):

  • Output of uname -a or ver:
  • Output of java -version: openjdk version "1.8.0_212"
  • GraalVM version (if different from Java): 19.0.2 (from image quay.io/quarkus/ubi-quarkus-native-image:19.0.2)
  • Quarkus version or git rev: 0.18

s2i native image builder doesn't respect a project's gradle wrapper nor any overridden project settings

The assemble script in the quarkus-native-binary-s2i-scripts module don't respect a project's Gradle wrapper

if "$USE_GRADLE"; then
  BUILD_DIR=build
  mkdir -p build/libs
  gradle buildNative --docker-build=false

This script always assumes that a build's output directory is build and uses the gradle script instead of the gradlew script. By not using gradlew, the image forces the build to a particular Gradle version instead of using the version that the project itself is declaring should be used. In addition a particular build may have changed the $buildDir property, in which case the build directory won't exist and output will be elsewhere.

S2I command is not correct anymore

Issue

The following command documented under modules/quarkus-native-s2i-scripts/README.md don't work and should be updated

oc new-build https://github.com/quarkusio/quarkus.git --context-dir=docker/centos-graal-maven-s2i --name quarkus-native-s2i
error: supplied context directory 'docker/centos-graal-maven-s2i' does not exist in 'https://github.com/quarkusio/quarkus.git'

FYI : @cescoffier

library initialization failed - unable to get max # of allocated fds

Hello everybody,

more than an issue, this is a support request, cause I'm not sure whether I'm missing anything in the container image creation.

In order to build the container image for aarch64, I've created the following environment:

  • Host:
    OS: Fedora 32 amd64
    hypervisor: QEMU/KVM
  • Guest:
    CPU: aarch64/Cortex-A53 - 4 core assigned
    RAM: 8Gb
    OS: Fedora 32 Minimal aarch64
    The remaining meaningful information from the docker logs (please find the full log attached)

2020-05-03 03:36:10,353 cekit DEBUG {'Platform': {'Name': 'Docker Engine - Community'}, 'Components': [{'Name': 'Engine', 'Version': '19.03.3', 'Details': {'ApiVersion': '1.40', 'Arch': 'arm64', 'BuildTime': '2019-10-08T01:00:39.000000000+00:00', 'Experimental': 'false', 'GitCommit': 'a872fc2', 'GoVersion': 'go1.12.10', 'KernelVersion': '5.6.7-300.fc32.aarch64', 'MinAPIVersion': '1.12', 'Os': 'linux'}}, {'Name': 'containerd', 'Version': '1.2.13', 'Details': {'GitCommit': '7ad184331fa3e55e52b890ea95e65ba581ae3429'}}, {'Name': 'runc', 'Version': '1.0.0-rc10', 'Details': {'GitCommit': 'dc9208a3303feef5b3839f4323d9beb36df0a9dd'}}, {'Name': 'docker-init', 'Version': '0.18.0', 'Details': {'GitCommit': 'fec3683'}}], 'Version': '19.03.3', 'ApiVersion': '1.40', 'MinAPIVersion': '1.12', 'GitCommit': 'a872fc2', 'GoVersion': 'go1.12.10', 'Os': 'linux', 'Arch': 'arm64', 'KernelVersion': '5.6.7-300.fc32.aarch64', 'BuildTime': '2019-10-08T01:00:39.000000000+00:00'}

The following changes have been applied to the Guest OS:

sudo sysctl -w fs.file-max=500000

The following changes have been applied to the quarkus-maven scripts and templates:

  • build-tooling-images.sh
    Just building version 20.0.0-java11
    added the line pip install -r requirements.txt

  • requirements.txt
    new file to make virtualenv load the dependencies docker and docker-squash

  • modules/graalvm/20.0.0-java11/module.yaml
    replaced amd64 with aarch64
    replaced md5 value to reflect the proper md5sum of the graalvm compressed archive for aarch64

  • modules/common-packages/module.yaml
    Added libstdc++-static to the list of the dependencies to be installed (honestly, just a tentative workaround)

The build process exits with an error when trying to installing the native image
/opt/graalvm/bin/gu --auto-yes install native-image
Error message: ibrary initialization failed - unable to get max # of allocated fds

I have the feeling the error is related to the permissions assigned to the user running the gu command inside the container, but tbh I'm not into those details yet and I'm keen to learn.

Any help will be much appreciated

output.log

GraalVM/Mandrel 20.3 images: libfreetype.so.6: cannot open shared object file: No such file or directory

I have hit libfreetype.so.6: cannot open shared object file: No such file or directory error when using GraalVM/Mandrel 20.3 images to compile project which uses graphics.

When running 20.3 GraalVM CE installed on my macOS the is no error in compilation.
(There is of course problem of no awt in java.library.path when hitting http://localhost:8080/ping which should be solved in Mandrel as mentioned in oracle/graal#2842)

CC @Karm / @cescoffier / @zakkak

Original exception that caused the problem: java.lang.UnsatisfiedLinkError: /opt/mandrel/lib/libfontmanager.so:
  libfreetype.so.6: cannot open shared object file: No such file or directory

Original exception that caused the problem: java.lang.UnsatisfiedLinkError: /opt/graalvm/lib/libfontmanager.so:
  libfreetype.so.6: cannot open shared object file: No such file or directory

Reproducer:

  • Download https://github.com/rsvoboda/rsvoboda-playground/tree/master/jfreesvg/jfreesvg-quarkus
  • run mvn clean package -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.native-image-xmx=4g -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel:20.3.0.0.Beta1-java11
    or
  • run mvn clean package -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.native-image-xmx=4g -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:20.3.0-java11

More detailed stacktrace:

Original exception that caused the problem: java.lang.UnsatisfiedLinkError: /opt/mandrel/lib/libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory
	at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
	at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
	at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
	at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2648)
	at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
	at java.base/java.lang.System.loadLibrary(System.java:1873)
	at java.desktop/sun.font.FontManagerNativeLibrary$1.run(FontManagerNativeLibrary.java:57)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.desktop/sun.font.FontManagerNativeLibrary.<clinit>(FontManagerNativeLibrary.java:32)
	at java.desktop/sun.font.SunLayoutEngine.<clinit>(SunLayoutEngine.java:109)
	at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
	at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1042)
	at jdk.unsupported/sun.misc.Unsafe.ensureClassInitialized(Unsafe.java:698)
	at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.ensureClassInitialized(ConfigurableClassInitialization.java:174)
	at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:607)
	at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:127)
	at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.shouldInitializeAtRuntime(ConfigurableClassInitialization.java:155)
	at com.oracle.svm.hosted.SVMHost.isInitialized(SVMHost.java:291)
	at com.oracle.graal.pointsto.meta.AnalysisType.isInitialized(AnalysisType.java:786)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.maybeEagerlyInitialize(BytecodeParser.java:4384)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genInvokeStatic(BytecodeParser.java:1624)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genInvokeStatic(BytecodeParser.java:1617)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5360)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3399)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3206)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:1092)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:986)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:84)
	at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase.run(SharedGraphBuilderPhase.java:70)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.run(Phase.java:49)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:212)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:42)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:38)
	at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:223)
	at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:357)
	at com.oracle.graal.pointsto.flow.MethodTypeFlow.doParse(MethodTypeFlow.java:313)
	at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureParsed(MethodTypeFlow.java:302)
	at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:103)
	at com.oracle.graal.pointsto.flow.StaticInvokeTypeFlow.update(InvokeTypeFlow.java:434)
	at com.oracle.graal.pointsto.BigBang$2.run(BigBang.java:547)
	at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:173)
	at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Minimal S2I build that support binary deployments

I've talked to some customer using Quarkus on OpenShift and a common pattern is to have a build infrastructure outside or inside OpenShift where artifacts like JARs and native are built outside in a separate flow from S2I. That could be to for example build the native using a local container or building it in Jenkins or Tekton. Having a S2I binary based on the UBI 7 or UBI 8 would make it much easier to deploy Quarkus native application to OpenShift

The user flow for a local build would then look something like this:

  1. The user builds the native locally
./mvnw package -Pnative -Dnative-image.docker-build=true
  1. The user creates a build config and uploads the binary
oc new-build <S2I-container-image> --name=<app-name> --binary
oc start-build <app-name> --from-file target/*-runner
  1. When the build finishes the result is a minimal image based on UBI with the application running and the user can create an application with the following command
oc new-app <app-name>

The drawback is that for the S2I to be minimal it should only support binary deployment. E.g. you cannot point it to a source directly so it needs to produce an error message if someone tries to use it with source builds.

Provide multi-arch images

Trying to use image on aarch64 and it's not working:

[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] podman run -v /home/g/downloads/code-with-quarkus/target/code-with-quarkus-1.0.0-SNAPSHOT-native-image-source-jar:/project:z --env LANG=C --userns=keep-id --rm quay.io/quarkus/ubi-quarkus-native-image:20.1.0-java11 -J-Dsun.nio.ch.maxUpdateArraySize=100 -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -J-Dvertx.logger-delegate-factory-class-name=io.quarkus.vertx.core.runtime.VertxLogDelegateFactory -J-Dvertx.disableDnsResolver=true -J-Dio.netty.leakDetection.level=DISABLED -J-Dio.netty.allocator.maxOrder=1 -J-Duser.language=en -J-Dfile.encoding=UTF-8 --initialize-at-build-time= -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy$BySpaceAndTime -H:+JNI -jar code-with-quarkus-1.0.0-SNAPSHOT-runner.jar -H:FallbackThreshold=0 -H:+ReportExceptionStackTraces -H:-AddAllCharsets -H:-IncludeAllTimeZones -H:EnableURLProtocols=http --no-server -H:-UseServiceLoaderFeature -H:+StackTrace code-with-quarkus-1.0.0-SNAPSHOT-runner
{"msg":"exec container process `/opt/graalvm/bin/native-image`: Exec format error","level":"error","time":"2020-07-29T10:03:36.000781782Z"}

The image descriptor is wrongly assuming all images are for amd64, see here.

Since GraalVM offers aarch64 downloads, should we provode complementary images for that arch?

error while loading shared libraries: libstdc++.so.6

I've got the this error when running the container with the image cescoffier/native-base:latest:

./application: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

Is it because there is missing some library in the image? Could it be solved by compiling the image to avoid the use of libstdc++.so.6?

I've compiled the application with the command in the documentation:

mvn package -Pnative -Dquarkus.native.container-runtime=docker

And I've built the application from within a docker container with this image quay.io/quarkus/centos-quarkus-maven:19.3.1-java8. I've tried also with the version 20.0.0 with the same results.

However, if I run it using registry.access.redhat.com/ubi8/ubi-minimal image, it works.

Use a fixed name for the application in the container

Currently the S2I image the native output *-runner to a directory making the final native application name depending on the maven output. This makes it harder to create for example a chained build since input from a chained build cannot contain wildcards. I suggest changing the name of the application to /home/quarkus/application

S2I - Fix how is started the application to capture shutdown signal

From zulip:

Steve Bylo: If you see the output, the process needs to be run with "exec"

docker run --rm quay.io/quarkus/ubi-quarkus-native-s2i:19.1.1 cat /usr/local/s2i/run

#!/bin/sh
${QUARKUS_HOME}/application -Dquarkus.http.host=0.0.0.0

Should be:

#!/bin/sh
exec ${QUARKUS_HOME}/application -Dquarkus.http.host=0.0.0.0

So, the java process receives the terminate signal from the platform, Kube.

centos-quarkus-maven still referenced (deprecated?)

The image centos-quarkus-maven is still listed in the README file (and there are a few other references in the repo to it)

I think (since #22) you no longer base on centos, and the quay.io pages suggest it has not been updated (due to the number of security issues) despite the "last modifed" of 5 days ago (at the time of writing)

Create major.minor (e.g. 20.1-java11) floating tag in quay for mandrel images

As discussed in graalvm/mandrel#95 we would like to have "floating" tags for mandrel images.

The floating tags would be based on the major.minor part of the tag and point to the latest major.minor.micro.patch.Final tag, i.e., 20.1-java11 would point to 20.1.0.1.Final-java11 today and later to 20.1.0.2.Final when released.

Ideally this process should be automated in https://github.com/quarkusio/quarkus-images/blob/master/.github/build-mandrel-images.sh but I see the following issue.
When a new image is created and pushed on quay it is not made public until someone does this manually.
If we are to automate the update of the floating tags how would that work?
We would essentially have the floating tag (which should be public) point to a private tag and thus break builds until the new tag becomes public.

\cc @galderz @cescoffier

Link to the READMEs are wrong like to quay repo too

Issue

Link to the READMEs (GraalVM Native S2I,centos-quarkus-maven ) within the README.me home page are wrong

Quarkus.io GraalVM Native S2I

For more information about this image, please refer its module README: --> WRONG Link GraalVM Native S2I

Centos + GraalVM + Maven Image

For more information about this image, please refer its module README: --> WRONG Link centos-quarkus-maven

like also for the quay.io org

Quarkus images

The images are available on --> WRONG Link Quay.io

FYI : @cescoffier

Mandrel 20.3.0.0.Beta1-java11: Could not find agent library native-image-diagnostics-agent

Building a native image results in:

Error occurred during initialization of VM
Could not find agent library native-image-diagnostics-agent on the library path, with error: libnative-image-diagnostics-agent.so: cannot open shared object file: No such file or directory
Error: Image build request failed with exit status 1

Issue is not present on mandrel 20.2-java11.

s2i native MVN_ADDITIONAL_ARGS

Trying to build a native image usinng s2i but can't set my own settings.xml for authenticate my own repository. I saw this variable MVN_ADDITIONAL_ARGS in the mvn package assembly script but it does not the setting value. What I can see is that its not defined in the module.yml.
Could it be added?

cluster proxy settings cause error

Using a cluster proxy seems to cause issues with the S2I build, tested using ubi-quarkus-native-s2i:19.3.1-java8. We've had success with the eap72-openshift image on the same cluster.

# oc get proxy/cluster -o json | jq .spec
{
  "httpProxy": "http://proxy.example.com:8080",
  "httpsProxy": "http://proxy.example.com:8080",
  "noProxy": ".example.com",
  "readinessEndpoints": [
    "http://www.google.com",
    "https://www.google.com"
  ],
  "trustedCA": {
    "name": "user-ca-bundle"
  }
}

# oc new-build quay.io/quarkus/ubi-quarkus-native-s2i:19.3.1-java8~https://github.com/quarkusio/quarkus-quickstarts.git --context-dir=getting-started --name=quarkus-quickstart-native
--> Found container image d35d3cd (2 weeks old) from quay.io for "quay.io/quarkus/ubi-quarkus-native-s2i:19.3.1-java8"

    Quarkus.io S2I (GraalVM Native)
    -------------------------------
    Quarkus.io S2I image for building Kubernetes Native Java GraalVM applications and running its Native Executables

    Tags: builder, java, quarkus, native

    * An image stream tag will be created as "ubi-quarkus-native-s2i:19.3.1-java8" that will track the source image
    * A source build using source code from https://github.com/quarkusio/quarkus-quickstarts.git will be created
      * The resulting image will be pushed to image stream tag "quarkus-quickstart-native:latest"
      * Every time "ubi-quarkus-native-s2i:19.3.1-java8" changes a new build will be triggered

--> Creating resources with label build=quarkus-quickstart-native ...
    imagestream.image.openshift.io "ubi-quarkus-native-s2i" created
    imagestream.image.openshift.io "quarkus-quickstart-native" created
    buildconfig.build.openshift.io "quarkus-quickstart-native" created
--> Success

# oc logs bc/quarkus-quickstart-native -f
Cloning "https://github.com/quarkusio/quarkus-quickstarts.git" ...
        Commit: 3211164dd8c56671f509e76cf39facb9e7a40d07 ([RELEASE] - Bump version to 1.2.0.Final)
        Author: Guillaume Smet <[email protected]>
        Date:   Tue Jan 28 08:18:04 2020 +0100
Caching blobs under "/var/cache/blobs".
Getting image source signatures
Copying blob sha256:cf0f3ebe9f536c782ab3835049cfbd9a663761ded9370791ef6ea3965c823aad
Copying blob sha256:57de4da701b511cba33bbdc424757f7f3b408bea741ca714ace265da9b59191a
Copying blob sha256:5a3e3396e22a3f9abfec5265b64444fb4d30d24ae7d10aea3cc188cf4f43ef29
Writing manifest to image destination
Storing signatures
Generating dockerfile with builder image quay.io/quarkus/ubi-quarkus-native-s2i@sha256:6e385a71b792230c038db1d9045f0fb5eb4aeda31cabfe62dd3d6cc8e64b6760
STEP 1: FROM quay.io/quarkus/ubi-quarkus-native-s2i@sha256:6e385a71b792230c038db1d9045f0fb5eb4aeda31cabfe62dd3d6cc8e64b6760
STEP 2: LABEL "io.openshift.build.commit.date"="Tue Jan 28 08:18:04 2020 +0100" "io.openshift.build.commit.id"="3211164dd8c56671f509e76cf39facb9e7a40d07" "io.openshift.build.commit.ref"="master" "io.openshift.build.commit.message"="[RELEASE] - Bump version to 1.2.0.Final" "io.openshift.build.source-location"="https://github.com/quarkusio/quarkus-quickstarts.git" "io.openshift.build.source-context-dir"="getting-started" "io.openshift.build.image"="quay.io/quarkus/ubi-quarkus-native-s2i@sha256:6e385a71b792230c038db1d9045f0fb5eb4aeda31cabfe62dd3d6cc8e64b6760" "io.openshift.build.commit.author"="Guillaume Smet <[email protected]>"
STEP 3: ENV ARTIFACT_COPY_ARGS="-p -r lib/ *-runner.jar" JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0" OPENSHIFT_BUILD_NAME="quarkus-quickstart-native-1" OPENSHIFT_BUILD_NAMESPACE="build-test" OPENSHIFT_BUILD_SOURCE="https://github.com/quarkusio/quarkus-quickstarts.git" OPENSHIFT_BUILD_COMMIT="3211164dd8c56671f509e76cf39facb9e7a40d07"
STEP 4: USER root
STEP 5: COPY upload/src /tmp/src
STEP 6: RUN chown -R 1001:0 /tmp/src
time="2020-01-31T22:35:51Z" level=warning msg="pkg/chroot: error unmounting \"/tmp/buildah162587256/mnt/rootfs\": error checking if \"/tmp/buildah162587256/mnt/rootfs/sys/fs/cgroup/pids\" is mounted: no such file or directory"
time="2020-01-31T22:35:51Z" level=warning msg="pkg/bind: error unmounting \"/tmp/buildah162587256/mnt/rootfs\": error checking if \"/tmp/buildah162587256/mnt/rootfs/sys/fs/cgroup/pids\" is mounted: no such file or directory"
STEP 7: USER 1001
STEP 8: RUN /usr/local/s2i/assemble
+ CONFIGURE_SCRIPTS=(${QUARKUS_HOME}/.m2/configure-maven.sh)
+ source /home/quarkus/.m2/configure.sh
++ executeModules preConfigure
++ for module in ${CONFIGURE_SCRIPTS[@]}
++ prepareModule
++ unset -f preConfigure
++ unset -f configure
++ unset -f postConfigure
++ unset -f prepareEnv
++ unset -f preConfigureEnv
++ unset -f configureEnv
++ unset -f postConfigureEnv
++ executeModule /home/quarkus/.m2/configure-maven.sh preConfigure
++ source /home/quarkus/.m2/configure-maven.sh
+++ type -t preConfigure
++ '[' -n '' ']'
++ executeModules configure
++ for module in ${CONFIGURE_SCRIPTS[@]}
++ prepareModule
++ unset -f preConfigure
++ unset -f configure
++ unset -f postConfigure
++ unset -f prepareEnv
++ unset -f preConfigureEnv
++ unset -f configureEnv
++ unset -f postConfigureEnv
++ executeModule /home/quarkus/.m2/configure-maven.sh configure
++ source /home/quarkus/.m2/configure-maven.sh
+++ type -t configure
++ '[' -n function ']'
++ eval configure
+++ configure
+++ configure_proxy
+++ HTTP_PROXY_USERNAME=
+++ HTTP_PROXY_PASSWORD=
+++ proxy=http://proxy.example.com:8080
++++ cut -d : -f 1,2
++++ echo http://proxy.example.com:8080
+++ proxyhost=http://proxy.example.com
++++ echo http://proxy.example.com:8080
++++ cut -d : -f 3
+++ proxyport=8080
+++ '[' -n http://proxy.example.com ']'
++++ echo http://proxy.example.com
++++ grep -i https://
+++ [[ -n '' ]]
+++ proxyport=8080
+++ proxyprotocol=http
+++ xml='<proxy>         <id>genproxy</id>         <active>true</active>         <protocol>http</protocol>         <host>http://proxy.example.com</host>         <port>8080</port>'
+++ '[' -n '' -a -n '' ']'
+++ '[' -n '' ']'
+++ xml='<proxy>         <id>genproxy</id>         <active>true</active>         <protocol>http</protocol>         <host>http://proxy.example.com</host>         <port>8080</port>       </proxy>'
+++ sed -i 's|<!-- ### configured http proxy ### -->|<proxy>         <id>genproxy</id>         <active>true</active>         <protocol>http</protocol>         <host>http://proxy.example.com</host>         <port>8080</port>       </proxy>|' /home/quarkus/.m2/settings.xml
+++ configure_mirrors
+++ '[' -n '' ']'
++ processEnvFiles
++ '[' -n '' ']'
++ executeModules postConfigure
++ for module in ${CONFIGURE_SCRIPTS[@]}
++ prepareModule
++ unset -f preConfigure
++ unset -f configure
++ unset -f postConfigure
++ unset -f prepareEnv
++ unset -f preConfigureEnv
++ unset -f configureEnv
++ unset -f postConfigureEnv
++ executeModule /home/quarkus/.m2/configure-maven.sh postConfigure
++ source /home/quarkus/.m2/configure-maven.sh
+++ type -t postConfigure
++ '[' -n '' ']'
+ SRC_DIR=/tmp/src/
+ cd /tmp/src/
+ '[' -e ./pom.xml -a -z '' ']'
+ USE_GRADLE=false
+ false
+ BUILD_DIR=target
+ mvn package -Pnative -e -B -DskipTests -Dmaven.javadoc.skip=true -Dmaven.site.skip=true -Dmaven.source.skip=true -Djacoco.skip=true -Dcheckstyle.skip=true -Dfindbugs.skip=true -Dpmd.skip=true -Dfabric8.skip=true
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] Downloading from central: https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/1.2.0.Final/quarkus-bom-1.2.0.Final.pom
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] Non-resolvable import POM: Could not transfer artifact io.quarkus:quarkus-bom:pom:1.2.0.Final from/to central (https://repo1.maven.org/maven2): http://proxy.example.com: Name or service not known @ line 21, column 25
[ERROR] 'dependencies.dependency.version' for io.quarkus:quarkus-resteasy:jar is missing. @ line 32, column 21
[ERROR] 'dependencies.dependency.version' for io.quarkus:quarkus-junit5:jar is missing. @ line 36, column 21
[ERROR] 'dependencies.dependency.version' for io.rest-assured:rest-assured:jar is missing. @ line 41, column 21
 @
[ERROR] The build could not read 1 project -> [Help 1]
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[ERROR] Non-resolvable import POM: Could not transfer artifact io.quarkus:quarkus-bom:pom:1.2.0.Final from/to central (https://repo1.maven.org/maven2): http://proxy.example.com: Name or service not known @ line 21, column 25
[ERROR] 'dependencies.dependency.version' for io.quarkus:quarkus-resteasy:jar is missing. @ line 32, column 21
[ERROR] 'dependencies.dependency.version' for io.quarkus:quarkus-junit5:jar is missing. @ line 36, column 21
[ERROR] 'dependencies.dependency.version' for io.rest-assured:rest-assured:jar is missing. @ line 41, column 21

    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:397)
    at org.apache.maven.graph.DefaultGraphBuilder.collectProjects (DefaultGraphBuilder.java:414)
    at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor (DefaultGraphBuilder.java:405)
    at org.apache.maven.graph.DefaultGraphBuilder.build (DefaultGraphBuilder.java:82)
    at org.apache.maven.DefaultMaven.buildGraph (DefaultMaven.java:507)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:219)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR]
[ERROR]   The project org.acme:getting-started:1.0-SNAPSHOT (/tmp/src/pom.xml) has 4 errors
[ERROR]     Non-resolvable import POM: Could not transfer artifact io.quarkus:quarkus-bom:pom:1.2.0.Final from/to central (https://repo1.maven.org/maven2): http://proxy.example.com: Name or service not known @ line 21, column 25: Unknown host http://proxy.example.com: Name or service not known -> [Help 2]
org.apache.maven.model.resolution.UnresolvableModelException: Could not transfer artifact io.quarkus:quarkus-bom:pom:1.2.0.Final from/to central (https://repo1.maven.org/maven2): http://proxy.example.com: Name or service not known
    at org.apache.maven.project.ProjectModelResolver.resolveModel (ProjectModelResolver.java:196)
    at org.apache.maven.model.building.DefaultModelBuilder.importDependencyManagement (DefaultModelBuilder.java:1265)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:474)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:440)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:618)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:387)
    at org.apache.maven.graph.DefaultGraphBuilder.collectProjects (DefaultGraphBuilder.java:414)
    at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor (DefaultGraphBuilder.java:405)
    at org.apache.maven.graph.DefaultGraphBuilder.build (DefaultGraphBuilder.java:82)
    at org.apache.maven.DefaultMaven.buildGraph (DefaultMaven.java:507)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:219)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not transfer artifact io.quarkus:quarkus-bom:pom:1.2.0.Final from/to central (https://repo1.maven.org/maven2): http://proxy.example.com: Name or service not known
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:424)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:229)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact (DefaultArtifactResolver.java:207)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact (DefaultRepositorySystem.java:262)
    at org.apache.maven.project.ProjectModelResolver.resolveModel (ProjectModelResolver.java:192)
    at org.apache.maven.model.building.DefaultModelBuilder.importDependencyManagement (DefaultModelBuilder.java:1265)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:474)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:440)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:618)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:387)
    at org.apache.maven.graph.DefaultGraphBuilder.collectProjects (DefaultGraphBuilder.java:414)
    at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor (DefaultGraphBuilder.java:405)
    at org.apache.maven.graph.DefaultGraphBuilder.build (DefaultGraphBuilder.java:82)
    at org.apache.maven.DefaultMaven.buildGraph (DefaultMaven.java:507)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:219)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact io.quarkus:quarkus-bom:pom:1.2.0.Final from/to central (https://repo1.maven.org/maven2): http://proxy.example.com: Name or service not known
    at org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed (ArtifactTransportListener.java:52)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:369)
    at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:75)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute (BasicRepositoryConnector.java:644)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get (BasicRepositoryConnector.java:262)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads (DefaultArtifactResolver.java:499)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:401)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:229)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact (DefaultArtifactResolver.java:207)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact (DefaultRepositorySystem.java:262)
    at org.apache.maven.project.ProjectModelResolver.resolveModel (ProjectModelResolver.java:192)
    at org.apache.maven.model.building.DefaultModelBuilder.importDependencyManagement (DefaultModelBuilder.java:1265)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:474)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:440)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:618)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:387)
    at org.apache.maven.graph.DefaultGraphBuilder.collectProjects (DefaultGraphBuilder.java:414)
    at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor (DefaultGraphBuilder.java:405)
    at org.apache.maven.graph.DefaultGraphBuilder.build (DefaultGraphBuilder.java:82)
    at org.apache.maven.DefaultMaven.buildGraph (DefaultMaven.java:507)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:219)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.wagon.TransferFailedException: http://proxy.example.com: Name or service not known
    at org.apache.maven.wagon.providers.http.wagon.shared.AbstractHttpClientWagon.fillInputData (AbstractHttpClientWagon.java:1206)
    at org.apache.maven.wagon.providers.http.wagon.shared.AbstractHttpClientWagon.fillInputData (AbstractHttpClientWagon.java:1094)
    at org.apache.maven.wagon.StreamWagon.getInputStream (StreamWagon.java:126)
    at org.apache.maven.wagon.StreamWagon.getIfNewer (StreamWagon.java:88)
    at org.apache.maven.wagon.StreamWagon.get (StreamWagon.java:61)
    at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run (WagonTransporter.java:567)
    at org.eclipse.aether.transport.wagon.WagonTransporter.execute (WagonTransporter.java:435)
    at org.eclipse.aether.transport.wagon.WagonTransporter.get (WagonTransporter.java:412)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:457)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:364)
    at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:75)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute (BasicRepositoryConnector.java:644)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get (BasicRepositoryConnector.java:262)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads (DefaultArtifactResolver.java:499)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:401)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:229)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact (DefaultArtifactResolver.java:207)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact (DefaultRepositorySystem.java:262)
    at org.apache.maven.project.ProjectModelResolver.resolveModel (ProjectModelResolver.java:192)
    at org.apache.maven.model.building.DefaultModelBuilder.importDependencyManagement (DefaultModelBuilder.java:1265)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:474)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:440)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:618)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:387)
    at org.apache.maven.graph.DefaultGraphBuilder.collectProjects (DefaultGraphBuilder.java:414)
    at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor (DefaultGraphBuilder.java:405)
    at org.apache.maven.graph.DefaultGraphBuilder.build (DefaultGraphBuilder.java:82)
    at org.apache.maven.DefaultMaven.buildGraph (DefaultMaven.java:507)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:219)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.net.UnknownHostException: http://proxy.example.com: Name or service not known
    at java.net.Inet6AddressImpl.lookupAllHostAddr (Native Method)
    at java.net.InetAddress$2.lookupAllHostAddr (InetAddress.java:929)
    at java.net.InetAddress.getAddressesFromNameService (InetAddress.java:1324)
    at java.net.InetAddress.getAllByName0 (InetAddress.java:1277)
    at java.net.InetAddress.getAllByName (InetAddress.java:1193)
    at java.net.InetAddress.getAllByName (InetAddress.java:1127)
    at org.apache.maven.wagon.providers.http.httpclient.impl.conn.SystemDefaultDnsResolver.resolve (SystemDefaultDnsResolver.java:45)
    at org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultHttpClientConnectionOperator.connect (DefaultHttpClientConnectionOperator.java:112)
    at org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManager.connect (PoolingHttpClientConnectionManager.java:374)
    at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec.establishRoute (MainClientExec.java:401)
    at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec.execute (MainClientExec.java:236)
    at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.ProtocolExec.execute (ProtocolExec.java:186)
    at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec.execute (RetryExec.java:89)
    at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RedirectExec.execute (RedirectExec.java:110)
    at org.apache.maven.wagon.providers.http.httpclient.impl.client.InternalHttpClient.doExecute (InternalHttpClient.java:185)
    at org.apache.maven.wagon.providers.http.httpclient.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:83)
    at org.apache.maven.wagon.providers.http.wagon.shared.AbstractHttpClientWagon.execute (AbstractHttpClientWagon.java:958)
    at org.apache.maven.wagon.providers.http.wagon.shared.AbstractHttpClientWagon.fillInputData (AbstractHttpClientWagon.java:1117)
    at org.apache.maven.wagon.providers.http.wagon.shared.AbstractHttpClientWagon.fillInputData (AbstractHttpClientWagon.java:1094)
    at org.apache.maven.wagon.StreamWagon.getInputStream (StreamWagon.java:126)
    at org.apache.maven.wagon.StreamWagon.getIfNewer (StreamWagon.java:88)
    at org.apache.maven.wagon.StreamWagon.get (StreamWagon.java:61)
    at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run (WagonTransporter.java:567)
    at org.eclipse.aether.transport.wagon.WagonTransporter.execute (WagonTransporter.java:435)
    at org.eclipse.aether.transport.wagon.WagonTransporter.get (WagonTransporter.java:412)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:457)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:364)
    at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:75)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute (BasicRepositoryConnector.java:644)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get (BasicRepositoryConnector.java:262)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads (DefaultArtifactResolver.java:499)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:401)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:229)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact (DefaultArtifactResolver.java:207)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact (DefaultRepositorySystem.java:262)
    at org.apache.maven.project.ProjectModelResolver.resolveModel (ProjectModelResolver.java:192)
    at org.apache.maven.model.building.DefaultModelBuilder.importDependencyManagement (DefaultModelBuilder.java:1265)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:474)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:440)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:618)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:387)
    at org.apache.maven.graph.DefaultGraphBuilder.collectProjects (DefaultGraphBuilder.java:414)
    at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor (DefaultGraphBuilder.java:405)
    at org.apache.maven.graph.DefaultGraphBuilder.build (DefaultGraphBuilder.java:82)
    at org.apache.maven.DefaultMaven.buildGraph (DefaultMaven.java:507)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:219)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR]     'dependencies.dependency.version' for io.quarkus:quarkus-resteasy:jar is missing. @ line 32, column 21
[ERROR]     'dependencies.dependency.version' for io.quarkus:quarkus-junit5:jar is missing. @ line 36, column 21
[ERROR]     'dependencies.dependency.version' for io.rest-assured:rest-assured:jar is missing. @ line 41, column 21
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException
subprocess exited with status 1
subprocess exited with status 1
error: build error: error building at STEP "RUN /usr/local/s2i/assemble": exit status 1

Upgrading some libraries

Dears,
How can I update some libraries like for example (glibc) ? Can I execute some update commands from Dockerfile ? If yes please share them.

cp: cannot stat 'my-app-runner.jar': No such file or directory

Regarding https://github.com/quarkusio/quarkus-images/blob/master/modules/quarkus-native-binary-s2i-scripts/s2i/assemble#L17

I put my jar in the path ${SRC_DIR}/native-image-runner/app-runner.jar. Otherwise the $(ls ${SRC_DIR}/*-runner was not able to find my file.

  app_path=$(ls ${SRC_DIR}/*-runner)
  cp -v ${app_path} ${QUARKUS_HOME}/application

When the app is placed in the ${SRC_DIR}/*-runner dir how is the cp command supposed to work when it doesn't copy from ${SRC_DIR}/*-runner but expecting the to be copied file in the current dir?

Log:

9:55:42  Assemblying
09:55:42  + SRC_DIR=/tmp/src/
09:55:42  + echo 'Building with uploaded src from /tmp/src/'
09:55:42  + echo Assemblying
09:55:42  ++ ls /tmp/src//native-image-runner
09:55:42  ++ wc -l
09:55:42  + '[' 1 -eq 1 ']'
09:55:42  ++ ls /tmp/src//native-image-runner
09:55:42  + app_path=app-runner.jar
09:55:42  + cp -v app-runner.jar /home/quarkus/application
09:55:42  cp: cannot stat 'app-runner.jar': No such file or directory
09:55:42  error: build error: non-zero (13) exit code from quay.io/quarkus/ubi-quarkus-native-binary-s2i@sha256:84c4594a987046b3720981d32c0b5a0a7ac8f33c19ad5f1a69526a5bef7a1c18

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.