docker自動部署spring-boot多模塊依賴工程


使用docker部署spring-boot多模塊依賴工程
docker自動部署多模塊的maven工程
轉載:https://hbxflihua.iteye.com/blog/2432005

使用docker部署spring-boot多模塊依賴工程
項目架構

dw

|

|----dw-demo(接口demo)

|

|----dw-core(代碼核心)

|

|----dw-api(接口,依賴dw-core)

|

|----dw-manage(后台,依賴dw-core)

一、准備工作

首先看下各模塊pom文件

1、項目父工程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.rd</groupId>  
    <artifactId>dw</artifactId>  
    <version>2.0.0</version>  
    <packaging>pom</packaging>  
  
    <modules>  
        <module>dw-core</module> <!--核心業務 -->  
        <module>dw-manage</module><!-- 后台 -->  
        <module>dw-api</module><!-- API -->  
        <module>dw-demo</module><!-- demo -->  
    </modules>  
  
    <parent>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-parent</artifactId>  
        <version>2.0.4.RELEASE</version>  
        <relativePath/> <!-- lookup parent from repository -->  
    </parent>  
      
</project>  

2、dw-core的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>  
  
    <artifactId>dw-core</artifactId>  
    <packaging>jar</packaging>  
  
    <parent>  
        <groupId>com.rd</groupId>  
        <artifactId>dw</artifactId>  
        <version>2.0.0</version>  
        <relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->  
    </parent>  
  
    <properties>  
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
        <java.version>1.8</java.version>  
        <relativePath/>  
    </properties>  
  
    <dependencies>  
        ......  
    </dependencies>  
  
    <build>  
        <plugins>  
            <plugin>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-maven-plugin</artifactId>  
                <configuration>  
                    <classifier>exec</classifier>  
                </configuration>  
            </plugin>           
        </plugins>  
    </build>  
  
</project>  

3、dw-demo的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>  
  
    <artifactId>dw-demo</artifactId>  
    <packaging>jar</packaging>  
  
    <parent>  
        <groupId>com.rd</groupId>  
        <artifactId>dw</artifactId>  
        <version>2.0.0</version>  
        <relativePath>../pom.xml</relativePath>   
    </parent>  
  
    <properties>  
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
        <java.version>1.8</java.version>  
    </properties>  
  
    <dependencies>  
        ......  
    </dependencies>  
  
    <build>  
        <plugins>  
            <plugin>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-maven-plugin</artifactId>  
                <configuration>  
                    <executable>true</executable>  
                </configuration>  
            </plugin>  
              
            <!-- Docker maven plugin -->  
            <plugin>  
                <groupId>com.spotify</groupId>  
                <artifactId>docker-maven-plugin</artifactId>  
                <version>1.0.0</version>  
                <configuration>  
                    <imageName>${project.groupId}/${project.artifactId}:${project.version}</imageName>  
                    <dockerDirectory>src/main/resources/docker</dockerDirectory>  
                    <resources>  
                        <resource>  
                            <targetPath>/</targetPath>  
                            <directory>${project.build.directory}</directory>  
                            <include>${project.build.finalName}.jar</include>  
                        </resource>  
                    </resources>  
                </configuration>  
            </plugin>  
            <!-- Docker maven plugin -->  
              
        </plugins>  
    </build>  
      
</project>  

 

4、dw-api和dw-manage的pom和dw-demo類似,這里就不展示了

二、創建Dockerfile文件

在dw-demo、dw-api、dw-manage三個模塊的sr/main/resources/docker下分別創建Dockerfile文件,Dockerfile 文件用來說明如何來構建鏡像。這里以dw-demo為例來說明,文件內容如下:

# 指定基礎鏡像  
FROM hub.c.163.com/library/java  
# 指定作者名和E-mail  
MAINTAINER lihua "lh@erongdu.com"  
  
#指定掛載點  
VOLUME /tmp  
#將本地文件或目錄復制到由dockerfile構建的鏡像中  
ADD dw-demo-2.0.0.jar demo.jar  
#設置環境變量  
#ENV JAVA_OPTS=""  
#提供容器運行的默認命令  
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-jar", "/demo.jar"]  

三、構建打包環境

在服務器上安裝jdk、maven 、docker、svn,具體參考如下鏈接,這里不做贅述。

ubuntu16.04搭建jdk1.8運行環境

ubuntu16.04安裝maven

Ubuntu16.04安裝Docker

Ubuntu SVN客戶端安裝

四、docker部署spring-boot工程

1、進入父工程pom文件所在目錄,打包編譯,將依賴包放至本地倉庫

mvn clean install package -Dmaven.test.skip  

2、進入各模塊,使用 DockerFile 構建鏡像

cd dw-demo  
mvn package docker:build -Dmaven.test.skip  

3、運行該鏡像

docker run -p 9882:8082 -t com.rd/dw-demo:2.0.0  

五、查看服務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM