micronaut-projects / micronaut-maven-plugin

Maven plugin to execute Micronaut applications
https://micronaut-projects.github.io/micronaut-maven-plugin/latest/
Apache License 2.0
20 stars 20 forks source link

micronaut aws custom runtime build failing post 4.x #805

Closed prashantcodecraft closed 1 year ago

prashantcodecraft commented 1 year ago

After moving to micronaut 4.x from 3.9.4 as per (https://micronaut.io/2023/05/09/upgrade-to-micronaut-framework-4-0-0/) , I have started facing following issue :

[ERROR] Failed to execute goal io.micronaut.maven:micronaut-maven-plugin:4.0.1:docker-native (default-docker-native) on project marvin-api-articles: Execution
 default-docker-native of goal io.micronaut.maven:micronaut-maven-plugin:4.0.1:docker-native failed: Could not build image: The command '/bin/sh -c yum update
 -y && yum install -y gcc gcc-c++ libc6-dev zlib1g-dev curl bash zlib zlib-devel zlib-static zip tar gzip && yum clean all' returned a non-zero code: 1 -> [Help 1]

Note* : This was working with MN 3.9.4 and Java 11

Following is the parent pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.marvin</groupId>
    <artifactId>marvin-api-articles</artifactId>
    <version>0.1</version>
    <packaging>${packaging}</packaging>

    <parent>
        <groupId>io.micronaut.platform</groupId>
        <artifactId>micronaut-parent</artifactId>
        <version>4.0.1</version>
    </parent>

    <properties>
        <packaging>jar</packaging>
        <jdk.version>17</jdk.version>
        <release.version>17</release.version>
        <micronaut.version>4.0.1</micronaut.version>
        <exec.mainClass>io.micronaut.function.aws.runtime.MicronautLambdaRuntime</exec.mainClass>
        <micronaut.runtime>lambda_provided</micronaut.runtime>
    </properties>

    <profiles>
        <profile>
            <id>local</id>
            <properties>
                <exec.mainClass>com.marvin.Application</exec.mainClass>
                <micronaut.runtime>netty</micronaut.runtime>
            </properties>
        </profile>
    </profiles>

    <repositories>
        <repository>
            <id>central</id>
            <url>https://repo.maven.apache.org/maven2</url>
        </repository>
        <repository>
            <id>clojars</id>
            <name>Clojars</name>
            <url>https://repo.clojars.org/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http-server-netty</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-inject</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.annotation</groupId>
            <artifactId>jakarta.annotation-api</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>
        <dependency>
            <groupId>io.micronaut.validation</groupId>
            <artifactId>micronaut-validation</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http-client</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.persistence</groupId>
            <artifactId>jakarta.persistence-api</artifactId>
            <version>3.1.0</version>
            <scope>compile</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.swagger.core.v3</groupId>
            <artifactId>swagger-annotations</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>auth0</artifactId>
            <version>1.30.0</version>
        </dependency>
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>auth0-spring-security-api</artifactId>
            <version>1.5.3</version>
        </dependency>
        <dependency>
            <groupId>io.micronaut.security</groupId>
            <artifactId>micronaut-security</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.security</groupId>
            <artifactId>micronaut-security-jwt</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.openapi</groupId>
            <artifactId>micronaut-openapi</artifactId>
            <version>4.8.5</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-nop</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.micronaut.data</groupId>
            <artifactId>micronaut-data-mongodb</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-sync</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.aws</groupId>
            <artifactId>micronaut-function-aws-api-proxy</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.aws</groupId>
            <artifactId>micronaut-function-aws-custom-runtime</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>1.4.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>
        <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.test</groupId>
            <artifactId>micronaut-test-junit5</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.tngtech.archunit</groupId>
            <artifactId>archunit-junit5</artifactId>
            <version>0.22.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>io.micronaut.maven</groupId>
                <artifactId>micronaut-maven-plugin</artifactId>
                <version>${micronaut-maven-plugin.version}</version>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin.version}</version>
                <configuration>
                    <!-- Uncomment to enable incremental compilation -->
                    <!-- <useIncrementalCompilation>false</useIncrementalCompilation> -->
                    <annotationProcessorPaths combine.self="override">
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>1.4.1.Final</version>
                        </path>
                        <path>
                            <groupId>io.micronaut</groupId>
                            <artifactId>micronaut-inject-java</artifactId>
                            <version>${micronaut.core.version}</version>
                        </path>
                        <path>
                            <groupId>io.micronaut.data</groupId>
                            <artifactId>micronaut-data-processor</artifactId>
                            <version>${micronaut.data.version}</version>
                        </path>
                        <path>
                            <groupId>io.micronaut.data</groupId>
                            <artifactId>micronaut-data-document-processor</artifactId>
                            <version>${micronaut.data.version}</version>
                        </path>
                        <path>
                            <groupId>io.micronaut</groupId>
                            <artifactId>micronaut-graal</artifactId>
                            <version>${micronaut.core.version}</version>
                        </path>
                        <path>
                            <groupId>io.micronaut</groupId>
                            <artifactId>micronaut-http-validation</artifactId>
                            <version>${micronaut.core.version}</version>
                        </path>
                        <path>
                            <groupId>io.micronaut.validation</groupId>
                            <artifactId>micronaut-validation-processor</artifactId>
                            <version>${micronaut.validation.version}</version>
                        </path>
                        <path>
                            <groupId>io.micronaut.openapi</groupId>
                            <artifactId>micronaut-openapi</artifactId>
                            <version>${micronaut.openapi.version}</version>
                        </path>
                        <path>
                            <groupId>io.micronaut.security</groupId>
                            <artifactId>micronaut-security-annotations</artifactId>
                            <version>${micronaut.security.version}</version>
                        </path>
                    </annotationProcessorPaths>
                    <compilerArgs>
                        <arg>-Amicronaut.processing.group=com.marvin</arg>
                        <arg>-Amicronaut.processing.module=marvin-api-articles</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

Following is the command being executed

mvn clean package -U -Dpackaging=docker-native -D"exec.mainClass"="io.micronaut.function.aws.runtime.MicronautLambdaRuntime" -D"micronaut.runtime"="lambda" -Pgraalvm -DskipTestsclearclear

Exception Occurred

[INFO] Scanning for projects...
[INFO] 
[INFO] -------------------< com.marvin:marvin-api-articles >-------------------
[INFO] Building marvin-api-articles 0.1
[INFO]   from pom.xml
[INFO] ---------------------------[ docker-native ]----------------------------
[INFO] 
[INFO] --- clean:3.2.0:clean (default-clean) @ marvin-api-articles ---
[INFO] Deleting D:\Marvin\marvin-api-articles\target
[INFO] 
[INFO] --- native:0.9.22:add-reachability-metadata (default-add-reachability-metadata) @ marvin-api-articles ---
[INFO] Downloaded GraalVM reachability metadata repository from file:/C:/Users/www.abcom.in/.m2/repository/org/graalvm/buildtools/graalvm-reachability-metadata/0.9.22/graalvm-reachability-metadata-0.9.22-repository.zip
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http2:4.1.94.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http2:4.1.94.Final]: Configuration directory is io.netty\netty-codec-http2\4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-handler:4.1.94.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-handler:4.1.94.Final]: Configuration directory is io.netty\netty-handler\4.1.80.Final     
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http:4.1.94.Final]: Configuration directory not found. Trying latest version.       
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http:4.1.94.Final]: Configuration directory is io.netty\netty-codec-http\4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-common:4.1.94.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-common:4.1.94.Final]: Configuration directory is io.netty\netty-common\4.1.80.Final       
[INFO] [graalvm reachability metadata repository for io.netty:netty-buffer:4.1.94.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-buffer:4.1.94.Final]: Configuration directory is io.netty\netty-buffer\4.1.80.Final       
[INFO] [graalvm reachability metadata repository for io.netty:netty-transport:4.1.94.Final]: Configuration directory not found. Trying latest version.        
[INFO] [graalvm reachability metadata repository for io.netty:netty-transport:4.1.94.Final]: Configuration directory is io.netty\netty-transport\4.1.80.Final 
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.4.8]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.4.8]: Configuration directory is ch.qos.logback\logback-classic\1.4.1   
[INFO] [graalvm reachability metadata repository for org.jetbrains.kotlin:kotlin-stdlib:1.8.21]: Configuration directory not found. Trying latest version.    
[INFO] [graalvm reachability metadata repository for org.jetbrains.kotlin:kotlin-stdlib:1.8.21]: Configuration directory is org.jetbrains.kotlin\kotlin-stdlib\1.7.10
[INFO] 
[INFO] --- resources:3.3.1:resources (default-resources) @ marvin-api-articles ---
[INFO] Copying 3 resources from src\main\resources to target\classes
[INFO]
[INFO] --- compiler:3.11.0:compile (default-compile) @ marvin-api-articles ---
[INFO] Changes detected - recompiling the module! :source
[INFO] Compiling 33 source files with javac [debug release 17] to target\classes
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.
[INFO] Generating OpenAPI Documentation
[WARNING] 'in' property can't set for securityScheme with type oauth2. Skip it
[WARNING] 'bearerFormat' property can't set for securityScheme with type oauth2. Skip it
[INFO] Writing OpenAPI file to destination: D:\Marvin\marvin-api-articles\target\classes\META-INF\swagger\articles-0.0.yml
[INFO] Writing OpenAPI views to destination: D:\Marvin\marvin-api-articles\target\classes\META-INF\swagger\views
[INFO] Writing OpenAPI View to destination: D:\Marvin\marvin-api-articles\target\classes\META-INF\swagger\views\swagger-ui\index.html
[INFO] Writing OpenAPI View to destination: D:\Marvin\marvin-api-articles\target\classes\META-INF\swagger\views\swagger-ui\oauth2-redirect.html
[INFO] Writing OpenAPI View Resources to destination: D:\Marvin\marvin-api-articles\target\classes\META-INF\swagger\views\swagger-ui\res\res\swagger-ui.css   
[INFO] Writing OpenAPI View Resources to destination: D:\Marvin\marvin-api-articles\target\classes\META-INF\swagger\views\swagger-ui\res\res\favicon-16x16.png
[INFO] Writing OpenAPI View Resources to destination: D:\Marvin\marvin-api-articles\target\classes\META-INF\swagger\views\swagger-ui\res\res\favicon-32x32.png
[INFO] Writing OpenAPI View Resources to destination: D:\Marvin\marvin-api-articles\target\classes\META-INF\swagger\views\swagger-ui\res\res\swagger-ui-bundle.js
[INFO] Writing OpenAPI View Resources to destination: D:\Marvin\marvin-api-articles\target\classes\META-INF\swagger\views\swagger-ui\res\res\swagger-ui-standalone-preset.js
[INFO] Writing OpenAPI View Resources to destination: D:\Marvin\marvin-api-articles\target\classes\META-INF\swagger\views\swagger-ui\res\classic.css
[INFO] Creating bean classes for 16 type elements
[INFO] Creating bean classes for 1 type elements
[INFO] /D:/Marvin/marvin-api-articles/src/main/java/com/marvin/config/MarvinIds.java: D:\Marvin\marvin-api-articles\src\main\java\com\marvin\config\MarvinIds.java uses unchecked or unsafe operations.
[INFO] /D:/Marvin/marvin-api-articles/src/main/java/com/marvin/config/MarvinIds.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- mn:4.0.1:aot-analysis (default-aot-analysis) @ marvin-api-articles ---
[INFO]
[INFO] --- mn:4.0.1:graalvm-resources (default-graalvm-resources) @ marvin-api-articles ---
[INFO] Generating D:\Marvin\marvin-api-articles\target\classes\META-INF\native-image\com.marvin\marvin-api-articles\resource-config.json
[INFO] 
[INFO] --- native:0.9.22:write-args-file (default-write-args-file) @ marvin-api-articles ---
[WARNING] Properties file at 'jar:file:///C:/Users/www.abcom.in/.m2/repository/io/micronaut/mongodb/micronaut-mongo-reactive/5.0.1/micronaut-mongo-reactive-5.
0.1.jar!/META-INF/native-image/io.micronaut.configuration.mongo.reactive.test/mongo-reactive/native-image.properties' does not match the recommended 'META-INF/native-image/io.micronaut.mongodb/micronaut-mongo-reactive/native-image.properties' layout.
[INFO] [graalvm reachability metadata repository for io.netty:netty-transport:4.1.94.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-transport:4.1.94.Final]: Configuration directory is io.netty\netty-transport\4.1.80.Final 
[WARNING] Properties file at 'jar:file:///C:/Users/www.abcom.in/.m2/repository/io/micronaut/security/micronaut-security-jwt/4.0.1/micronaut-security-jwt-4.0.1
.jar!/META-INF/native-image/io.micronaut.security/token-jwt/native-image.properties' does not match the recommended 'META-INF/native-image/io.micronaut.security/micronaut-security-jwt/native-image.properties' layout.
[WARNING] Properties file at 'jar:file:///C:/Users/www.abcom.in/.m2/repository/io/micronaut/micronaut-http/4.0.1/micronaut-http-4.0.1.jar!/META-INF/native-ima
ge/io.micronaut.http/micronaut-http/native-image.properties' does not match the recommended 'META-INF/native-image/io.micronaut/micronaut-http/native-image.properties' layout.
[INFO] [graalvm reachability metadata repository for io.netty:netty-handler:4.1.94.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-handler:4.1.94.Final]: Configuration directory is io.netty\netty-handler\4.1.80.Final     
[INFO] [graalvm reachability metadata repository for io.netty:netty-common:4.1.94.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-common:4.1.94.Final]: Configuration directory is io.netty\netty-common\4.1.80.Final       
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http:4.1.94.Final]: Configuration directory not found. Trying latest version.       
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http:4.1.94.Final]: Configuration directory is io.netty\netty-codec-http\4.1.80.Final
[INFO] [graalvm reachability metadata repository for org.jetbrains.kotlin:kotlin-stdlib:1.8.21]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.jetbrains.kotlin:kotlin-stdlib:1.8.21]: Configuration directory is org.jetbrains.kotlin\kotlin-stdlib\1.7.10
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.4.8]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.4.8]: Configuration directory is ch.qos.logback\logback-classic\1.4.1   
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http2:4.1.94.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http2:4.1.94.Final]: Configuration directory is io.netty\netty-codec-http2\4.1.80.Final
[WARNING] Properties file at 'jar:file:///C:/Users/www.abcom.in/.m2/repository/io/micronaut/data/micronaut-data-tx/4.0.2/micronaut-data-tx-4.0.2.jar!/META-INF
/native-image/io.micronaut.data/data-tx/native-image.properties' does not match the recommended 'META-INF/native-image/io.micronaut.data/micronaut-data-tx/native-image.properties' layout.
[INFO] [graalvm reachability metadata repository for io.netty:netty-buffer:4.1.94.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-buffer:4.1.94.Final]: Configuration directory is io.netty\netty-buffer\4.1.80.Final       
[WARNING] Properties file at 'jar:file:///C:/Users/www.abcom.in/.m2/repository/org/mongodb/mongodb-driver-core/4.10.1/mongodb-driver-core-4.10.1.jar!/META-INF
/native-image/org.mongodb/bson/native-image.properties' does not match the recommended 'META-INF/native-image/org.mongodb/mongodb-driver-core/native-image.properties' layout.
[WARNING] Properties file at 'jar:file:///C:/Users/www.abcom.in/.m2/repository/io/micronaut/data/micronaut-data-model/4.0.2/micronaut-data-model-4.0.2.jar!/ME
TA-INF/native-image/io.micronaut.data/data-model/native-image.properties' does not match the recommended 'META-INF/native-image/io.micronaut.data/micronaut-data-model/native-image.properties' layout.
[INFO] Args file written to: target\native-image-98843021936111829.args
[INFO]
[INFO] --- mn:4.0.1:docker-native (default-docker-native) @ marvin-api-articles ---
[WARNING] The parent POM of this project is not set to io.micronaut:micronaut-parent
[INFO] Using GRAALVM_VERSION: 22.3.0
[INFO] Using GRAALVM_JVM_VERSION: 17
[INFO] Using GRAALVM_ARCH: x64
[INFO] Using CLASS_NAME: io.micronaut.function.aws.runtime.MicronautLambdaRuntime
[INFO] Step 1/23 : FROM amazonlinux:latest AS graalvm
[INFO]

[INFO]  ---> ebef10df3953

[INFO] Step 2/23 : ENV LANG=en_US.UTF-8
[INFO]

[INFO]  ---> Using cache

[INFO]  ---> b2fe774b9890

[INFO] Step 3/23 : ARG GRAALVM_VERSION
[INFO]

[INFO]  ---> Using cache

[INFO]  ---> d958a9c16882

[INFO] Step 4/23 : ARG GRAALVM_JVM_VERSION
[INFO]

[INFO]  ---> Using cache

[INFO]  ---> 8d27db55e522

[INFO] Step 5/23 : ARG GRAALVM_ARCH
[INFO]

[INFO]  ---> Using cache

[INFO]  ---> 2aa6d0a5f7f9

[INFO] Step 6/23 : RUN yum update -y && yum install -y gcc gcc-c++ libc6-dev zlib1g-dev curl bash zlib zlib-devel zlib-static zip tar gzip && yum clean all   
[INFO]

[INFO]  ---> Running in f2a05f68dbdf

[INFO] Failed to set locale, defaulting to C.UTF-8

[INFO] Amazon Linux 2023 repository                    4.2 MB/s |  16 MB     00:03    

[INFO] Last metadata expiration check: 0:00:08 ago on Sat Jul 29 07:07:02 2023.

[INFO] Dependencies resolved.

[INFO] Nothing to do.
Complete!

[INFO] Failed to set locale, defaulting to C.UTF-8

[INFO] Last metadata expiration check: 0:00:09 ago on Sat Jul 29 07:07:02 2023.

[INFO] No match for argument: libc6-dev

[INFO] No match for argument: zlib1g-dev

[INFO] Package bash-5.2.15-1.amzn2023.0.2.x86_64 is already installed.
[ERROR] Failed to execute goal io.micronaut.maven:micronaut-maven-plugin:4.0.1:docker-native (default-docker-native) on project marvin-api-articles: Execution default-docker-native of goal io.micronaut.maven:micronaut-maven-plugin:4.0.1:docker-native failed: Could not build image: The command '/bin/sh -c yum update -y && yum install -y gcc gcc-c++ libc6-dev zlib1g-dev curl bash zlib zlib-devel zlib-static zip tar gzip && yum clean all' returned a non-zero code: 1 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[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/PluginExecutionException
prashantcodecraft commented 1 year ago

The same issue occurs even if I try running this on github actions, following is the github action :

name: GraalVM Build & Deploy (Java 17)
on: 
  workflow_dispatch:

jobs:
   BUILD:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: "☕️ Setup GraalVM CE & Java 17"
        uses: graalvm/setup-graalvm@v1
        with:
          version: latest
          java-version: '17'
          components: 'native-image'
          github-token: ${{ secrets.GITHUB_TOKEN }}
      - name: "✅ Verify versions"
        run: |
          echo "GRAALVM_HOME: $GRAALVM_HOME"
          echo "JAVA_HOME: $JAVA_HOME"
          java --version
          gu --version
          native-image --version
      - name: Cache local Maven repository
        uses: actions/cache@v2
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
      - name: "📸 Build the Native Binary"
        run: |
          mvn package -Dpackaging=docker-native -Dexec.mainClass=io.micronaut.function.aws.runtime.MicronautLambdaRuntime -Dmicronaut.runtime=lambda -Pgraalvm -DskipTests
      - name: Archive Artifact
        uses: actions/upload-artifact@v3
        with:
          name: marvin-api-articles
          path: target/
          retention-days: 1

Following error return :

Error:  Failed to execute goal io.micronaut.maven:micronaut-maven-plugin:4.0.1:docker-native (default-docker-native) on project marvin-api-articles: Execution default-docker-native of goal io.micronaut.maven:micronaut-maven-plugin:4.0.1:docker-native failed: Could not build image: The command '/bin/sh -c yum update -y && yum install -y gcc gcc-c++ libc6-dev zlib1g-dev curl bash zlib zlib-devel zlib-static zip tar gzip && yum clean all' returned a non-zero code: 1 -> [Help 1]
Error:  
Error:  To see the full stack trace of the errors, re-run Maven with the -e switch.
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/PluginExecutionException
Error: Process completed with exit code 1.
alvarosanchez commented 1 year ago

Duplicates #798

prashantcodecraft commented 1 year ago

@alvarosanchez : With 4.0.2 , I am able to pass step 6 but facing following issue at Step 7 :

[INFO] mv: target ?/usr/lib/graalvm? is not a directory

[ERROR] The command '/bin/sh -c curl -4 -L https://download.oracle.com/graalvm/${GRAALVM_JVM_VERSION}/latest/graalvm-jdk-${GRAALVM_JVM_VERSION}_linux-${GRAALVM_ARCH}_bin.tar.gz -o /tmp/graalvm.tar.gz     && tar -zxf /tmp/graalvm.tar.gz -C /tmp     && mv /tmp/graalvm* /usr/lib/graalvm     && rm -rf /tmp/*' returned a non-zero code: 1

Its failing at :

RUN curl -4 -L https://download.oracle.com/graalvm/17/latest/graalvm-jdk-17_linux-x64_bin.tar.gz -o /tmp/graalvm.tar.gz \
    && tar -zxf /tmp/graalvm.tar.gz -C /tmp \
    && mv /tmp/graalvm* /usr/lib/graalvm \
    && rm -rf /tmp/*
prashantcodecraft commented 1 year ago

@alvarosanchez : I have tried using 4.0.3-SNAPSHOT to test the build pipeline for my projects , it did passed step 6 & 7, but has now started failing on step 13.

[INFO] Error: Found unrecognized options while parsing argument file '/home/app/graalvm-native-image.args':
@target\\\\tmp\\\\native-image-18195191610805619447.args

[ERROR] The command '/bin/sh -c native-image @/home/app/graalvm-native-image.args -H:Class=${CLASS_NAME} -H:Name=application -cp "/home/app/libs/*:/home/app/classes/"' returned a non-zero code: 20
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

Following is the pom , if needed :

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.marvin</groupId>
    <artifactId>marvin-api-articles</artifactId>
    <version>0.1</version>
    <packaging>${packaging}</packaging>

    <parent>
        <groupId>io.micronaut.platform</groupId>
        <artifactId>micronaut-parent</artifactId>
        <version>4.0.3-SNAPSHOT</version>
    </parent>

    <properties>
        <packaging>jar</packaging>
        <jdk.version>17</jdk.version>
        <release.version>17</release.version>
        <micronaut.version>4.0.3-SNAPSHOT</micronaut.version>
        <micronaut.test.resources.enabled>true</micronaut.test.resources.enabled>
        <exec.mainClass>io.micronaut.function.aws.runtime.MicronautLambdaRuntime</exec.mainClass>
        <micronaut.runtime>lambda</micronaut.runtime>
        <micronaut.aot.enabled>false</micronaut.aot.enabled>
        <micronaut.validation.version>4.0.0-SNAPSHOT</micronaut.validation.version>
    </properties>

    <profiles>
        <profile>
            <id>local</id>
            <properties>
                <exec.mainClass>com.marvin.Application</exec.mainClass>
                <micronaut.runtime>netty</micronaut.runtime>
            </properties>
        </profile>
    </profiles>

    <repositories>
        <repository>
            <id>sonatype-snapshots</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
        <repository>
            <id>central</id>
            <url>https://repo.maven.apache.org/maven2</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http-server-netty</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>auth0</artifactId>
            <version>1.30.0</version>
        </dependency>
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>auth0-spring-security-api</artifactId>
            <version>1.5.3</version>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>1.4.1.Final</version>
        </dependency>
        <dependency>
            <groupId>jakarta.persistence</groupId>
            <artifactId>jakarta.persistence-api</artifactId>
            <version>3.1.0</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.openapi</groupId>
            <artifactId>micronaut-openapi</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-nop</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http-client</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.aws</groupId>
            <artifactId>micronaut-aws-lambda-events-serde</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.aws</groupId>
            <artifactId>micronaut-function-aws-api-proxy</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.aws</groupId>
            <artifactId>micronaut-function-aws-api-proxy-test</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.aws</groupId>
            <artifactId>micronaut-function-aws-custom-runtime</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.crac</groupId>
            <artifactId>micronaut-crac</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.data</groupId>
            <artifactId>micronaut-data-mongodb</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.mongodb</groupId>
            <artifactId>micronaut-mongo-sync</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.security</groupId>
            <artifactId>micronaut-security</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.security</groupId>
            <artifactId>micronaut-security-jwt</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.serde</groupId>
            <artifactId>micronaut-serde-jackson</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.validation</groupId>
            <artifactId>micronaut-validation</artifactId>
            <version>${micronaut.validation.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.swagger.core.v3</groupId>
            <artifactId>swagger-annotations</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.annotation</groupId>
            <artifactId>jakarta.annotation-api</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.validation</groupId>
            <artifactId>jakarta.validation-api</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-sync</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.testresources</groupId>
            <artifactId>micronaut-test-resources-client</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>io.micronaut.test</groupId>
            <artifactId>micronaut-test-junit5</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>io.micronaut.maven</groupId>
                <artifactId>micronaut-maven-plugin</artifactId>
                <version>${micronaut-maven-plugin.version}</version>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin.version}</version>
                <configuration>
                    <!-- Uncomment to enable incremental compilation -->
                    <!-- <useIncrementalCompilation>false</useIncrementalCompilation> -->
                    <annotationProcessorPaths combine.self="override">
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>1.4.1.Final</version>
                        </path>
                        <path>
                            <groupId>io.micronaut</groupId>
                            <artifactId>micronaut-inject-java</artifactId>
                            <version>${micronaut.core.version}</version>
                        </path>
                        <path>
                            <groupId>io.micronaut.data</groupId>
                            <artifactId>micronaut-data-processor</artifactId>
                            <version>${micronaut.data.version}</version>
                            <exclusions>
                                <exclusion>
                                    <groupId>io.micronaut</groupId>
                                    <artifactId>micronaut-inject</artifactId>
                                </exclusion>
                            </exclusions>
                        </path>
                        <path>
                            <groupId>io.micronaut.data</groupId>
                            <artifactId>micronaut-data-document-processor</artifactId>
                            <version>${micronaut.data.version}</version>
                            <exclusions>
                                <exclusion>
                                    <groupId>io.micronaut</groupId>
                                    <artifactId>micronaut-inject</artifactId>
                                </exclusion>
                            </exclusions>
                        </path>
                        <path>
                            <groupId>io.micronaut</groupId>
                            <artifactId>micronaut-graal</artifactId>
                            <version>${micronaut.core.version}</version>
                        </path>
                        <path>
                            <groupId>io.micronaut.openapi</groupId>
                            <artifactId>micronaut-openapi</artifactId>
                            <version>${micronaut.openapi.version}</version>
                            <exclusions>
                                <exclusion>
                                    <groupId>io.micronaut</groupId>
                                    <artifactId>micronaut-inject</artifactId>
                                </exclusion>
                            </exclusions>
                        </path>
                        <path>
                            <groupId>io.micronaut.security</groupId>
                            <artifactId>micronaut-security-annotations</artifactId>
                            <version>${micronaut.security.version}</version>
                        </path>
                        <path>
                            <groupId>io.micronaut.serde</groupId>
                            <artifactId>micronaut-serde-processor</artifactId>
                            <version>${micronaut.serialization.version}</version>
                            <exclusions>
                                <exclusion>
                                    <groupId>io.micronaut</groupId>
                                    <artifactId>micronaut-inject</artifactId>
                                </exclusion>
                            </exclusions>
                        </path>
                        <path>
                            <groupId>io.micronaut.validation</groupId>
                            <artifactId>micronaut-validation-processor</artifactId>
                            <version>${micronaut.validation.version}</version>
                            <exclusions>
                                <exclusion>
                                    <groupId>io.micronaut</groupId>
                                    <artifactId>micronaut-inject</artifactId>
                                </exclusion>
                            </exclusions>
                        </path>
                    </annotationProcessorPaths>
                    <compilerArgs>
                        <arg>-Amicronaut.processing.group=com.marvin</arg>
                        <arg>-Amicronaut.processing.module=marvin-api-articles</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>
alvarosanchez commented 1 year ago

I'd need a reproducing application

prashantcodecraft commented 1 year ago

I have created a sketchy application at : https://github.com/sharewithmarvin/micronaut-demo

When we try to build this on windows machine with docker using following command it fails

mvn package -Dpackaging=docker-native -D"exec.mainClass"="io.micronaut.function.aws.runtime.MicronautLambdaRuntime" -D"micronaut.runtime"="lambda" -Pgraalvm -DskipTests

Logs are

D:\demo>mvn package -Dpackaging=docker-native -D"exec.mainClass"="io.micronaut.function.aws.runtime.MicronautLambdaRuntime" -D"micronaut.runtime"="lambda" -Pgraalvm -DskipTests
[INFO] Scanning for projects...
[INFO] 
[INFO] -------------------------< com.prashant:demo >--------------------------
[INFO] Building demo 0.1
[INFO]   from pom.xml
[INFO] ---------------------------[ docker-native ]----------------------------
[INFO] 
[INFO] --- enforcer:3.3.0:enforce (micronaut-enforce) @ demo ---
[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireJavaVersion passed
[INFO] Rule 1: io.micronaut.maven.enforcer.CheckSnakeYaml passed
[INFO] 
[INFO] --- native:0.9.22:add-reachability-metadata (default-add-reachability-metadata) @ demo ---
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http2:4.1.95.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http2:4.1.95.Final]: Configuration directory is io.netty\netty-codec-http2\4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-handler:4.1.95.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-handler:4.1.95.Final]: Configuration directory is io.netty\netty-handler\4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http:4.1.95.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http:4.1.95.Final]: Configuration directory is io.netty\netty-codec-http\4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-common:4.1.95.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-common:4.1.95.Final]: Configuration directory is io.netty\netty-common\4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-buffer:4.1.95.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-buffer:4.1.95.Final]: Configuration directory is io.netty\netty-buffer\4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-transport:4.1.95.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-transport:4.1.95.Final]: Configuration directory is io.netty\netty-transport\4.1.80.Final
[INFO] [graalvm reachability metadata repository for org.eclipse.jetty:jetty-server:11.0.15]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.eclipse.jetty:jetty-server:11.0.15]: Configuration directory is org.eclipse.jetty\jetty-server\11.0.12
[INFO] [graalvm reachability metadata repository for org.hibernate.orm:hibernate-core:6.2.6.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.hibernate.orm:hibernate-core:6.2.6.Final]: Configuration directory is org.hibernate.orm\hibernate-core\6.2.0.Final
[INFO] [graalvm reachability metadata repository for org.jboss.logging:jboss-logging:3.5.0.Final]: Configuration directory is org.jboss.logging\jboss-logging\3.5.0.Final
[INFO] [graalvm reachability metadata repository for org.glassfish.jaxb:jaxb-runtime:4.0.2]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.glassfish.jaxb:jaxb-runtime:4.0.2]: Configuration directory is org.glassfish.jaxb\jaxb-runtime\3.0.2
[INFO] [graalvm reachability metadata repository for com.zaxxer:HikariCP:5.0.1]: Configuration directory is com.zaxxer\HikariCP\5.0.1
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.4.8]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.4.8]: Configuration directory is ch.qos.logback\logback-classic\1.4.1
[INFO] [graalvm reachability metadata repository for com.h2database:h2:2.2.220]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for com.h2database:h2:2.2.220]: Configuration directory is com.h2database\h2\2.1.210
[INFO] 
[INFO] --- resources:3.3.1:resources (default-resources) @ demo ---
[INFO] Copying 2 resources from src\main\resources to target\classes
[INFO]
[INFO] --- compiler:3.11.0:compile (default-compile) @ demo ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- mn:4.0.4:aot-analysis (default-aot-analysis) @ demo ---
[INFO] 
[INFO] --- mn:4.0.4:graalvm-resources (default-graalvm-resources) @ demo ---
[INFO] Generating D:\demo\target\classes\META-INF\native-image\com.prashant\demo\resource-config.json
[INFO] 
[INFO] --- native:0.9.22:write-args-file (default-write-args-file) @ demo ---
[INFO] [graalvm reachability metadata repository for org.eclipse.jetty:jetty-server:11.0.15]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.eclipse.jetty:jetty-server:11.0.15]: Configuration directory is org.eclipse.jetty\jetty-server\11.0.12
[INFO] [graalvm reachability metadata repository for io.netty:netty-handler:4.1.95.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-handler:4.1.95.Final]: Configuration directory is io.netty\netty-handler\4.1.80.Final
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.4.8]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.4.8]: Configuration directory is ch.qos.logback\logback-classic\1.4.1
[INFO] [graalvm reachability metadata repository for io.netty:netty-transport:4.1.95.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-transport:4.1.95.Final]: Configuration directory is io.netty\netty-transport\4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-common:4.1.95.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-common:4.1.95.Final]: Configuration directory is io.netty\netty-common\4.1.80.Final
[WARNING] Properties file at 'jar:file:///C:/Users/www.abcom.in/.m2/repository/io/micronaut/sql/micronaut-hibernate-jpa/5.0.1/micronaut-hibernate-jpa-5.0.1.jar!/META-INF/native-image/io.micronaut.sql/hibernate-jpa-graal/native-image.properties' does not match the recommended 'META-INF/native-image/io.micronaut.sql/micronaut-hibernate-jpa/native-image.properties' layout.
[INFO] [graalvm reachability metadata repository for org.hibernate.orm:hibernate-core:6.2.6.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.hibernate.orm:hibernate-core:6.2.6.Final]: Configuration directory is org.hibernate.orm\hibernate-core\6.2.0.Final
[WARNING] Properties file at 'jar:file:///C:/Users/www.abcom.in/.m2/repository/io/micronaut/data/micronaut-data-model/4.0.3/micronaut-data-model-4.0.3.jar!/META-INF/native-image/io.micronaut.data/data-model/native-image.properties' does not match the recommended 'META-INF/native-image/io.micronaut.data/micronaut-data-model/native-image.properties' layout.
[INFO] [graalvm reachability metadata repository for com.zaxxer:HikariCP:5.0.1]: Configuration directory is com.zaxxer\HikariCP\5.0.1
[INFO] [graalvm reachability metadata repository for com.h2database:h2:2.2.220]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for com.h2database:h2:2.2.220]: Configuration directory is com.h2database\h2\2.1.210
[INFO] [graalvm reachability metadata repository for org.glassfish.jaxb:jaxb-runtime:4.0.2]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.glassfish.jaxb:jaxb-runtime:4.0.2]: Configuration directory is org.glassfish.jaxb\jaxb-runtime\3.0.2
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http2:4.1.95.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http2:4.1.95.Final]: Configuration directory is io.netty\netty-codec-http2\4.1.80.Final
[WARNING] Properties file at 'jar:file:///C:/Users/www.abcom.in/.m2/repository/io/micronaut/data/micronaut-data-tx/4.0.3/micronaut-data-tx-4.0.3.jar!/META-INF/native-image/io.micronaut.data/data-tx/native-image.properties' does not match the recommended 'META-INF/native-image/io.micronaut.data/micronaut-data-tx/native-image.properties' layout.
[WARNING] Properties file at 'jar:file:///C:/Users/www.abcom.in/.m2/repository/io/micronaut/micronaut-http/4.0.2/micronaut-http-4.0.2.jar!/META-INF/native-image/io.micronaut.http/micronaut-http/native-image.properties' does not match the recommended 'META-INF/native-image/io.micronaut/micronaut-http/native-image.properties' layout.
[INFO] [graalvm reachability metadata repository for io.netty:netty-buffer:4.1.95.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-buffer:4.1.95.Final]: Configuration directory is io.netty\netty-buffer\4.1.80.Final
[WARNING] Properties file at 'jar:file:///C:/Users/www.abcom.in/.m2/repository/io/micronaut/data/micronaut-data-tx-jdbc/4.0.3/micronaut-data-tx-jdbc-4.0.3.jar!/META-INF/native-image/io.micronaut.data/data-tx/native-image.properties' does not match the recommended 'META-INF/native-image/io.micronaut.data/micronaut-data-tx-jdbc/native-image.properties' layout.
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http:4.1.95.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http:4.1.95.Final]: Configuration directory is io.netty\netty-codec-http\4.1.80.Final
[INFO] [graalvm reachability metadata repository for org.jboss.logging:jboss-logging:3.5.0.Final]: Configuration directory is org.jboss.logging\jboss-logging\3.5.0.Final
[INFO] Args file written to: target\native-image-9867820605802179732.args
[INFO]
[INFO] --- mn:4.0.4:docker-native (default-docker-native) @ demo ---
[INFO] Using GRAALVM_JVM_VERSION: 17
[INFO] Using GRAALVM_ARCH: x64
[INFO] Using CLASS_NAME: io.micronaut.function.aws.runtime.MicronautLambdaRuntime
[INFO] GraalVM native image build args: [@target\\tmp\\native-image-15371622442563250387.args]
[INFO] Step 1/22 : FROM amazonlinux:2 AS graalvm
[INFO]

[INFO]  ---> 73a97098c056

[INFO] Step 2/22 : ENV LANG=en_US.UTF-8
[INFO]

[INFO]  ---> Using cache

[INFO]  ---> 17b16ef70db2

[INFO] Step 3/22 : ARG GRAALVM_JVM_VERSION
[INFO]

[INFO]  ---> Using cache

[INFO]  ---> 7326e55b60ae

[INFO] Step 4/22 : ARG GRAALVM_ARCH
[INFO]

[INFO]  ---> Using cache

[INFO]  ---> d216aac886ca

[INFO] Step 5/22 : RUN yum update -y && yum install -y gcc gcc-c++ libc6-dev zlib1g-dev curl bash zlib zlib-devel zlib-static zip tar gzip && yum clean all && rm -rf /var/cache/yum
[INFO]

[INFO]  ---> Using cache

[INFO]  ---> 916dfe66b59d

[INFO] Step 6/22 : RUN curl -4 -L https://download.oracle.com/graalvm/${GRAALVM_JVM_VERSION}/latest/graalvm-jdk-${GRAALVM_JVM_VERSION}_linux-${GRAALVM_ARCH}_bin.tar.gz -o /tmp/graalvm.tar.gz     && mkdir -p /usr/lib/graalvm     && tar -zxf /tmp/graalvm.tar.gz -C /usr/lib/graalvm --strip-components 1     && rm -rf /tmp/*
[INFO]

[INFO]  ---> Using cache

[INFO]  ---> bdd35f6d19ae

[INFO] Step 7/22 : ENV PATH=/usr/lib/graalvm/bin:${PATH}
[INFO]

[INFO]  ---> Using cache

[INFO]  ---> f32c0eb45914

[INFO] Step 8/22 : WORKDIR /home/app
[INFO]

[INFO]  ---> Using cache

[INFO]  ---> 6b4169248a8f

[INFO] Step 9/22 : COPY classes /home/app/classes
[INFO]

[INFO]  ---> 1fb5348ebb2b

[INFO] Step 10/22 : COPY dependency/* /home/app/libs/
[INFO]

[INFO]  ---> 9c76060cfd4f

[INFO] Step 11/22 : COPY *.args /home/app/graalvm-native-image.args
[INFO]

[INFO]  ---> 3218e3313b26

[INFO] Step 12/22 : ARG CLASS_NAME
[INFO]

[INFO]  ---> Running in 383d3deba7ca

[INFO] Removing intermediate container 383d3deba7ca
[ERROR] The command '/bin/sh -c native-image @/home/app/graalvm-native-image.args -H:Class=${CLASS_NAME} -H:Name=application -cp "/home/app/libs/*:/home/app/classes/"' returned a non-zero code: 20     
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  16.857 s
[INFO] Finished at: 2023-08-02T23:30:24+05:30
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.micronaut.maven:micronaut-maven-plugin:4.0.4:docker-native (default-docker-native) on project demo: Execution default-docker-native of goal io.micronaut.maven:micronaut-maven-plugin:4.0.4:docker-native failed: Could not build image: The command '/bin/sh -c native-image @/home/app/graalvm-native-image.args -H:Class=${CLASS_NAME} -H:Name=application -cp "/home/app/libs/*:/home/app/classes/"' returned a non-zero code: 20 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[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/PluginExecutionException
alvarosanchez commented 1 year ago

Thank you for the example application. It does work in Unix, so it must be a Windows-only issue. I have created #808 to keep track of it. Let's move the conversation there.