You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by GitBox <gi...@apache.org> on 2022/10/01 10:06:39 UTC
[GitHub] [shardingsphere] linghengqian commented on a diff in pull request #21109: Build GraalVM Native Image nightly for ShardingSphere Proxy
linghengqian commented on code in PR #21109:
URL: https://github.com/apache/shardingsphere/pull/21109#discussion_r982962014
##########
shardingsphere-distribution/shardingsphere-proxy-distribution/pom.xml:
##########
@@ -219,5 +226,199 @@
</plugins>
</build>
</profile>
+ <profile>
+ <id>native</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>${maven-compiler-plugin.version}</version>
+ <configuration>
+ <source>17</source>
+ <target>17</target>
+ <compilerArgument>--enable-preview</compilerArgument>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.graalvm.buildtools</groupId>
+ <artifactId>native-maven-plugin</artifactId>
+ <version>${native.maven.plugin.version}</version>
+ <extensions>true</extensions>
+ <executions>
+ <execution>
+ <id>build-native</id>
+ <goals>
+ <goal>compile-no-fork</goal>
+ </goals>
+ <phase>package</phase>
+ </execution>
+ <execution>
+ <id>test-native</id>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <phase>test</phase>
+ </execution>
+ </executions>
+ <configuration>
+ <imageName>${native.image.name}</imageName>
+ <mainClass>org.apache.shardingsphere.proxy.Bootstrap</mainClass>
+ <fallback>false</fallback>
+ <verbose>true</verbose>
+ <buildArgs>
+ <arg>--report-unsupported-elements-at-runtime</arg>
+ </buildArgs>
+ <jvmArgs>
+ <arg>--enable-preview</arg>
+ </jvmArgs>
+ <metadataRepository>
+ <enabled>true</enabled>
+ </metadataRepository>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>docker.native</id>
+ <properties>
+ <proxy.image.repository>apache/shardingsphere-proxy-native</proxy.image.repository>
+ <proxy.image.tag>${project.version}</proxy.image.tag>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>${exec-maven-plugin.version}</version>
+ <executions>
+ <execution>
+ <id>build</id>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <executable>docker</executable>
+ <arguments>
+ <argument>build</argument>
+ <argument>--pull</argument>
+ <argument>--build-arg</argument>
+ <argument>APP_NAME=${native.image.name}</argument>
+ <argument>-f</argument>
+ <argument>./Dockerfile-Native</argument>
+ <argument>.</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>docker.buildx.push.native</id>
+ <properties>
+ <proxy.image.platform>linux/amd64,linux/arm64</proxy.image.platform>
+ <proxy.image.repository>apache/shardingsphere-proxy</proxy.image.repository>
+ <proxy.image.tag>${project.version}</proxy.image.tag>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>${exec-maven-plugin.version}</version>
+ <executions>
+ <execution>
+ <id>create builder</id>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <executable>docker</executable>
+ <arguments>
+ <argument>buildx</argument>
+ <argument>create</argument>
+ <argument>--use</argument>
+ <argument>--driver</argument>
+ <argument>docker-container</argument>
+ <argument>--name</argument>
+ <argument>shardingsphere-builder</argument>
+ <argument>--platform</argument>
+ <argument>${proxy.image.platform}</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>build</id>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <executable>docker</executable>
+ <arguments>
+ <argument>buildx</argument>
+ <argument>build</argument>
+ <argument>-f</argument>
+ <argument>./Dockerfile-Native</argument>
+ <argument>--pull</argument>
+ <argument>--platform</argument>
+ <argument>${proxy.image.platform}</argument>
+ <argument>--build-arg</argument>
+ <argument>APP_NAME=${native.image.name}</argument>
+ <argument>.</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>push</id>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <executable>docker</executable>
+ <arguments>
+ <argument>buildx</argument>
+ <argument>build</argument>
+ <argument>-f</argument>
+ <argument>./Dockerfile-Native</argument>
+ <argument>--push</argument>
+ <argument>--platform</argument>
+ <argument>${proxy.image.platform}</argument>
+ <argument>--build-arg</argument>
+ <argument>APP_NAME=${native.image.name}</argument>
+ <argument>.</argument>
+ <argument>-t</argument>
+ <argument>${proxy.image.repository}:${proxy.image.tag}</argument>
+ <argument>-t</argument>
+ <argument>${proxy.image.repository}:latest</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>cleanup builder</id>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <executable>docker</executable>
+ <arguments>
+ <argument>buildx</argument>
+ <argument>rm</argument>
+ <argument>shardingsphere-builder</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
Review Comment:
Should I merge `docker.buildx.push.native` into `docker.buildx.push` profile?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org