You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by le...@apache.org on 2022/07/13 04:03:59 UTC

[incubator-linkis] branch dev-1.3.0 updated: [Feature] Add Dockerfile to linkis-dist module for both linkis backends and web (#2447)

This is an automated email from the ASF dual-hosted git repository.

legendtkl pushed a commit to branch dev-1.3.0
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git


The following commit(s) were added to refs/heads/dev-1.3.0 by this push:
     new 3dd1d4cd6 [Feature] Add Dockerfile to linkis-dist module for both linkis backends and web (#2447)
3dd1d4cd6 is described below

commit 3dd1d4cd6ff94cd87abb7cab0943b7dee44f5767
Author: Aaron Lin <51...@users.noreply.github.com>
AuthorDate: Wed Jul 13 12:03:54 2022 +0800

    [Feature] Add Dockerfile to linkis-dist module for both linkis backends and web (#2447)
    
    * [Feature] add Dockerfile to linkis-dist module for both linkis backend and web
    
    * fix error on build non-dev image
---
 README.md                                        |  9 ++-
 linkis-dist/bin/install.sh                       |  2 +-
 linkis-dist/docker/Dockerfile                    | 99 ++++++++++++++++++++++++
 linkis-dist/package/sbin/ext/linkis-common-start | 30 ++++---
 linkis-dist/package/sbin/ext/linkis-mg-eureka    | 33 +++++---
 linkis-dist/package/sbin/ext/linkis-mg-gateway   | 31 +++++---
 linkis-dist/pom.xml                              | 85 +++++++++++++++++++-
 pom.xml                                          |  1 +
 web/pom.xml                                      | 68 ++++++++++++++++
 9 files changed, 327 insertions(+), 31 deletions(-)

diff --git a/README.md b/README.md
index a929eadf9..dfa59252f 100644
--- a/README.md
+++ b/README.md
@@ -76,8 +76,15 @@ Please go to the [Linkis Releases Page](https://github.com/apache/incubator-link
 
 ## compile backend
 ### Mac OS/Linux
+# 1. When compiling for the first time, execute the following command first
 ./mvnw -N install
-./mvnw  clean install -Dmaven.javadoc.skip=true -Dmaven.test.skip=true
+# 2. make the linkis distribution package
+# - Option 1: make the linkis distribution package only
+./mvnw clean install -Dmaven.javadoc.skip=true -Dmaven.test.skip=true
+# - Option 2: make the linkis distribution package and docker image
+./mvnw clean install -Pdocker -Dmaven.javadoc.skip=true -Dmaven.test.skip=true
+# - Option 3: linkis distribution package and docker image (included web)
+./mvnw clean install -Pdocker -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -Dlinkis.build.web=true
 
 ### Windows
 mvnw.cmd -N install
diff --git a/linkis-dist/bin/install.sh b/linkis-dist/bin/install.sh
index 9ccd30cb2..5ebbfd98e 100644
--- a/linkis-dist/bin/install.sh
+++ b/linkis-dist/bin/install.sh
@@ -256,7 +256,7 @@ MYSQL_PASSWORD=$(echo ${MYSQL_PASSWORD//'#'/'\#'})
 
 #init db
 if [[ '2' = "$MYSQL_INSTALL_MODE" ]];then
-     mysql -h$MYSQL_HOST -P$MYSQL_PORT -u$MYSQL_USER -p$MYSQL_PASSWORD --default-character-set=utf8 -e "CREATE DATABASE IF NOT EXISTS $MYSQL_DB DEFAULT CHARSET utf8 COLLATE utf8_general_ci;"
+  mysql -h$MYSQL_HOST -P$MYSQL_PORT -u$MYSQL_USER -p$MYSQL_PASSWORD --default-character-set=utf8 -e "CREATE DATABASE IF NOT EXISTS $MYSQL_DB DEFAULT CHARSET utf8 COLLATE utf8_general_ci;"
   mysql -h$MYSQL_HOST -P$MYSQL_PORT -u$MYSQL_USER -p$MYSQL_PASSWORD -D$MYSQL_DB  --default-character-set=utf8 -e "source ${LINKIS_HOME}/db/linkis_ddl.sql"
   isSuccess "source linkis_ddl.sql"
   mysql -h$MYSQL_HOST -P$MYSQL_PORT -u$MYSQL_USER -p$MYSQL_PASSWORD -D$MYSQL_DB  --default-character-set=utf8 -e "source ${LINKIS_HOME}/db/linkis_dml.sql"
diff --git a/linkis-dist/docker/Dockerfile b/linkis-dist/docker/Dockerfile
new file mode 100644
index 000000000..ba7657206
--- /dev/null
+++ b/linkis-dist/docker/Dockerfile
@@ -0,0 +1,99 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+######################################################################
+# linkis image
+######################################################################
+
+ARG IMAGE_BASE=centos:7
+ARG IMAGE_BASE_WEB=nginx:1.19.6
+
+FROM ${IMAGE_BASE} as linkis
+
+ARG BUILD_TYPE=dev
+
+ARG JDK_VERSION=1.8.0-openjdk
+ARG JDK_BUILD_REVISION=1.8.0.332.b09-1.el7_9
+
+ARG MYSQL_JDBC_VERSION=5.1.49
+
+ARG LINKIS_VERSION=0.0.0
+ARG LINKIS_SYSTEM_USER="hadoop"
+ARG LINKIS_SYSTEM_UID="9001"
+
+ARG LINKIS_HOME=/opt/linkis
+ARG LINKIS_CONF_DIR=/etc/linkis-conf
+ARG LINKIS_LOG_DIR=/var/logs/linkis
+
+WORKDIR ${LINKIS_HOME}
+
+RUN useradd -r -s /bin/bash -u ${LINKIS_SYSTEM_UID} -g root -G wheel ${LINKIS_SYSTEM_USER}
+
+# TODO: remove install mysql client when schema-init-tools is ready
+RUN yum install -y \
+       vim unzip curl sudo krb5-workstation sssd crontabs python-pip \
+       java-${JDK_VERSION}-${JDK_BUILD_REVISION} \
+       java-${JDK_VERSION}-devel-${JDK_BUILD_REVISION} \
+       mysql \
+    && yum clean all
+
+RUN sed -i "s#^%wheel.*#%wheel        ALL=(ALL)       NOPASSWD: ALL#g" /etc/sudoers
+
+RUN mkdir -p /opt/tmp \
+    && mkdir -p ${LINKIS_CONF_DIR} \
+    && mkdir -p ${LINKIS_LOG_DIR}
+
+ENV JAVA_HOME /etc/alternatives/jre
+ENV LINKIS_CONF_DIR ${LINKIS_CONF_DIR}
+ENV LINKIS_CLIENT_CONF_DIR ${LINKIS_CONF_DIR}
+ENV LINKIS_HOME ${LINKIS_HOME}
+
+ADD apache-linkis-${LINKIS_VERSION}-incubating-bin.tar.gz /opt/tmp/
+
+RUN mv /opt/tmp/linkis-package/* ${LINKIS_HOME}/ \
+    && rm -rf /opt/tmp
+
+# Put mysql-connector-java-*.jar package into the image only in development mode
+RUN if [ "$BUILD_TYPE" = "dev" ] ; then \
+      curl -L -o ${LINKIS_HOME}/lib/linkis-commons/public-module/mysql-connector-java-${MYSQL_JDBC_VERSION}.jar \
+        https://repo1.maven.org/maven2/mysql/mysql-connector-java/${MYSQL_JDBC_VERSION}/mysql-connector-java-${MYSQL_JDBC_VERSION}.jar \
+      && cp ${LINKIS_HOME}/lib/linkis-commons/public-module/mysql-connector-java-${MYSQL_JDBC_VERSION}.jar ${LINKIS_HOME}/lib/linkis-spring-cloud-services/linkis-mg-gateway/ ;\
+    fi
+
+RUN chmod g+w -R ${LINKIS_HOME} && chown ${LINKIS_SYSTEM_USER}:${LINKIS_SYSTEM_GROUP} -R ${LINKIS_HOME} \
+    && chmod g+w -R ${LINKIS_CONF_DIR} && chown ${LINKIS_SYSTEM_USER}:${LINKIS_SYSTEM_GROUP} -R ${LINKIS_CONF_DIR}  \
+    && chmod g+w -R ${LINKIS_LOG_DIR} && chown ${LINKIS_SYSTEM_USER}:${LINKIS_SYSTEM_GROUP} -R ${LINKIS_LOG_DIR} \
+    && chmod a+x ${LINKIS_HOME}/bin/* \
+    && chmod a+x ${LINKIS_HOME}/sbin/*
+
+USER ${LINKIS_SYSTEM_USER}
+
+ENTRYPOINT ["/bin/bash"]
+
+
+######################################################################
+# linkis web image
+######################################################################
+FROM ${IMAGE_BASE_WEB} as linkis-web
+
+ARG LINKIS_VERSION=0.0.0
+ARG LINKIS_HOME=/opt/linkis
+
+ENV LINKIS_WEB_ROOT ${LINKIS_HOME}-web
+
+RUN mkdir -p ${LINKIS_HOME}-web
+COPY apache-linkis-web-${LINKIS_VERSION}-dist/dist ${LINKIS_HOME}-web
diff --git a/linkis-dist/package/sbin/ext/linkis-common-start b/linkis-dist/package/sbin/ext/linkis-common-start
index d2a15e2b3..c93ce958c 100644
--- a/linkis-dist/package/sbin/ext/linkis-common-start
+++ b/linkis-dist/package/sbin/ext/linkis-common-start
@@ -73,15 +73,25 @@ fi
 export SERVER_CLASS_PATH=$SERVER_CONF_PATH:$LINKIS_COMMONS_LIB/*:$SERVER_LIB/*
 
 echo  "=====Java Start Command====="
-echo  "nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 > $LINKIS_LOG_DIR/${SERVER_NAME}.out &"
-nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 > $LINKIS_LOG_DIR/${SERVER_NAME}.out &
 
-pid=$!
-sleep 2
-if [[ -z "${pid}" ]]; then
-    echo "server $SERVER_NAME start failed!"
-    exit 1
+if [ "X${RUN_IN_FOREGROUND}" == "Xtrue" ]; then
+
+  echo  "java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1"
+  java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1
+
 else
-    echo "server $SERVER_NAME start succeeded!"
-    echo $pid > $SERVER_PID
-fi
\ No newline at end of file
+
+  echo  "nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 > $LINKIS_LOG_DIR/${SERVER_NAME}.out &"
+  nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 > $LINKIS_LOG_DIR/${SERVER_NAME}.out &
+
+  pid=$!
+  sleep 2
+  if [[ -z "${pid}" ]]; then
+      echo "server $SERVER_NAME start failed!"
+      exit 1
+  else
+      echo "server $SERVER_NAME start succeeded!"
+      echo $pid > $SERVER_PID
+  fi
+
+fi
diff --git a/linkis-dist/package/sbin/ext/linkis-mg-eureka b/linkis-dist/package/sbin/ext/linkis-mg-eureka
index 63ba5c1e3..f89a5bc04 100644
--- a/linkis-dist/package/sbin/ext/linkis-mg-eureka
+++ b/linkis-dist/package/sbin/ext/linkis-mg-eureka
@@ -90,16 +90,31 @@ else
 fi
 
 SPRING_ARGS="$SPRING_ARGS --spring.profiles.active=eureka"
+
 echo  "=====Java Start Command====="
-echo  "nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 > $LINKIS_LOG_DIR/${SERVER_NAME}.out &"
-nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 > $LINKIS_LOG_DIR/${SERVER_NAME}.out &
 
-pid=$!
-sleep 2
-if [[ -z "${pid}" ]]; then
-    echo "server $SERVER_NAME start failed!"
-    exit 1
+if [ "X${RUN_IN_FOREGROUND}" == "Xtrue" ]; then
+
+  echo  "java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1"
+  java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1
+
 else
-    echo "server $SERVER_NAME start succeeded!"
-    echo $pid > $SERVER_PID
+
+  echo  "nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 > $LINKIS_LOG_DIR/${SERVER_NAME}.out &"
+  nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 > $LINKIS_LOG_DIR/${SERVER_NAME}.out &
+
+  pid=$!
+  sleep 2
+  if [[ -z "${pid}" ]]; then
+      echo "server $SERVER_NAME start failed!"
+      exit 1
+  else
+      echo "server $SERVER_NAME start succeeded!"
+      echo $pid > $SERVER_PID
+
+      if [ "X${RUN_IN_FOREGROUND}" == "Xtrue" ]; then
+        wait $pid || exit -1
+      fi
+  fi
+
 fi
diff --git a/linkis-dist/package/sbin/ext/linkis-mg-gateway b/linkis-dist/package/sbin/ext/linkis-mg-gateway
index d65b93566..bc51387bd 100644
--- a/linkis-dist/package/sbin/ext/linkis-mg-gateway
+++ b/linkis-dist/package/sbin/ext/linkis-mg-gateway
@@ -76,16 +76,29 @@ fi
 export SERVER_CLASS_PATH=$SERVER_CONF_PATH:$SERVER_LIB/*
 
 echo  "=====Java Start Command====="
-echo  "nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 > $LINKIS_LOG_DIR/${SERVER_NAME}.out &"
 
-nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 >  $LINKIS_LOG_DIR/${SERVER_NAME}.out &
+if [ "X${RUN_IN_FOREGROUND}" == "Xtrue" ]; then
+
+  echo  "java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1"
+  java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1
 
-pid=$!
-sleep 2
-if [[ -z "${pid}" ]]; then
-    echo "server $SERVER_NAME start failed!"
-    exit 1
 else
-    echo "server $SERVER_NAME start succeeded!"
-    echo $pid > $SERVER_PID
+
+  echo  "nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 > $LINKIS_LOG_DIR/${SERVER_NAME}.out &"
+  nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 >  $LINKIS_LOG_DIR/${SERVER_NAME}.out &
+
+  pid=$!
+  sleep 2
+  if [[ -z "${pid}" ]]; then
+      echo "server $SERVER_NAME start failed!"
+      exit 1
+  else
+      echo "server $SERVER_NAME start succeeded!"
+      echo $pid > $SERVER_PID
+
+      if [ "X${RUN_IN_FOREGROUND}" == "Xtrue" ]; then
+        wait $pid || exit -1
+      fi
+  fi
+
 fi
diff --git a/linkis-dist/pom.xml b/linkis-dist/pom.xml
index 81039bc19..545fb20ba 100644
--- a/linkis-dist/pom.xml
+++ b/linkis-dist/pom.xml
@@ -218,4 +218,87 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+    <profiles>
+        <profile>
+            <id>docker</id>
+            <properties>
+                <image.build.type>dev</image.build.type>
+                <image.base>centos:7</image.base>
+                <image.base.web>nginx:1.19.6</image.base.web>
+                <jdk.version>1.8.0-openjdk</jdk.version>
+                <jdk.build.revision>1.8.0.332.b09-1.el7_9</jdk.build.revision>
+                <linkis.system.user>hadoop</linkis.system.user>
+                <linkis.system.uid>9001</linkis.system.uid>
+                <linkis.home>/opt/linkis</linkis.home>
+                <linkis.conf.dir>/etc/linkis-conf</linkis.conf.dir>
+                <linkis.log.dir>/var/logs/linkis</linkis.log.dir>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-antrun-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>build-linkis-image</id>
+                                <phase>install</phase>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                                <configuration>
+                                    <target name="linkis-image">
+                                        <exec executable="docker" failonerror="true" >
+                                            <arg value="build" />
+                                            <arg value="-f"          /> <arg value="${project.basedir}/docker/Dockerfile" />
+                                            <arg value="-t"          /> <arg value="${project.parent.artifactId}:${project.version}" />
+                                            <arg value="--target"    /> <arg value="linkis" />
+                                            <arg value="--build-arg" /> <arg value="IMAGE_BASE=${image.base}" />
+                                            <arg value="--build-arg" /> <arg value="JDK_VERSION=${jdk.version}" />
+                                            <arg value="--build-arg" /> <arg value="JDK_BUILD_REVISION=${jdk.build.revision}" />
+                                            <arg value="--build-arg" /> <arg value="LINKIS_VERSION=${project.version}" />
+                                            <arg value="--build-arg" /> <arg value="MYSQL_JDBC_VERSION=${mysql.connector.version}" />
+                                            <arg value="--build-arg" /> <arg value="BUILD_TYPE=${image.build.type}" />
+                                            <arg value="--build-arg" /> <arg value="LINKIS_SYSTEM_USER=${linkis.system.user}" />
+                                            <arg value="--build-arg" /> <arg value="LINKIS_SYSTEM_UID=${linkis.system.uid}" />
+                                            <arg value="--build-arg" /> <arg value="LINKIS_HOME=${linkis.home}" />
+                                            <arg value="--build-arg" /> <arg value="LINKIS_CONF_DIR=${linkis.conf.dir}" />
+                                            <arg value="--build-arg" /> <arg value="LINKIS_LOG_DIR=${linkis.log.dir}" />
+                                            <arg value="${project.build.directory}" />
+                                        </exec>
+                                    </target>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>build-linkis-web-image</id>
+                                <phase>install</phase>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                                <configuration>
+                                    <target name="linkis-web-image" if="linkis.build.web">
+                                        <echo message="Building linkis web image ..." />
+                                        <mkdir dir="${basedir}/target/apache-linkis-web-${project.version}-dist" />
+                                        <copy todir="${basedir}/target/apache-linkis-web-${project.version}-dist">
+                                            <fileset dir="${basedir}/../web/dist" includes="**" />
+                                        </copy>
+                                        <exec executable="docker" failonerror="true" >
+                                            <arg value="build" />
+                                            <arg value="-f"          /> <arg value="${project.basedir}/docker/Dockerfile" />
+                                            <arg value="-t"          /> <arg value="${project.parent.artifactId}-web:${project.version}" />
+                                            <arg value="--target"    /> <arg value="linkis-web" />
+                                            <arg value="--build-arg" /> <arg value="IMAGE_BASE_WEB=${image.base.web}" />
+                                            <arg value="--build-arg" /> <arg value="LINKIS_VERSION=${project.version}" />
+                                            <arg value="--build-arg" /> <arg value="LINKIS_HOME=${linkis.home}" />
+                                            <arg value="${project.build.directory}" />
+                                        </exec>
+                                    </target>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>
diff --git a/pom.xml b/pom.xml
index 91e851de7..cb3f07a4a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,7 @@
         <module>linkis-computation-governance</module>
         <module>linkis-engineconn-plugins</module>
         <module>linkis-extensions</module>
+        <module>web</module>
         <module>linkis-dist</module>
     </modules>
     <properties>
diff --git a/web/pom.xml b/web/pom.xml
new file mode 100644
index 000000000..a470a2374
--- /dev/null
+++ b/web/pom.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<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">
+  <parent>
+    <artifactId>linkis</artifactId>
+    <groupId>org.apache.linkis</groupId>
+    <version>1.1.3</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>linkis-web</artifactId>
+  <packaging>pom</packaging>
+
+  <profiles>
+    <profile>
+      <id>web</id>
+      <activation>
+        <property>
+          <name>linkis.build.web</name>
+          <value>true</value>
+        </property>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-antrun-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>build</id>
+                <phase>install</phase>
+                <goals>
+                  <goal>run</goal>
+                </goals>
+                <configuration>
+                  <target>
+                    <exec executable="npm" failonerror="true">
+                      <arg value="run" />
+                      <arg value="build" />
+                    </exec>
+                  </target>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+
+</project>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org