我们推荐使用 docker 进行部署,同时也准备好了三个基础的 docker 镜像 cloudopt/cloudopt-next-docker:jdk8 和 cloudopt/cloudopt-next-docker:jdk10 、 cloudopt/cloudopt-next-docker:jdk11-openj9-node12 帮助大家简化部署过程。所有镜像都已经安装了 node12(用于使用自动文档生成)。
首先你需要设置 maven 的配置,指定用于运行的 main 方法文件,然后在打包成 jar 后,执行这个 jar 就会执行这个方法。
<plugin><artifactId>maven-assembly-plugin</artifactId><version>3.1.0</version><configuration><finalName>cloudopt-demo</finalName><archive><manifest><mainClass>net.cloudopt.demo.AppKt</mainClass></manifest></archive><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin>
然后在 Dockerfile 中配置以下的内容,建议自己修改一下(jar 的文件名是根据上面 maven 的配置自动生成的):
FROM cloudopt/cloudopt-next-docker:jdk8RUN rm -rf /project/*ADD pom.xml /tmp/build/ADD src /tmp/build/srcRUN mkdir -p /project/RUN cd /tmp/build && mvn clean install -DskipTests \&& mv target/cloudopt-network-jar-with-dependencies.jar /project/application.jar \&& cd / && rm -rf /tmp/build# Expose port 8080EXPOSE 8080CMD ["java","-jar","/project/application.jar"]
