`
hbxflihua
  • 浏览: 660540 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用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

 

 

五、查看服务

 

  • 大小: 3.9 KB
分享到:
评论

相关推荐

    spring-boot-angular:基于Spring Boot + angular的前一级分离的后台管理系统

    退出登录用户管理模块管理角色管理字典管理修改密码,记住密码部门管理权限管理手机端登录,退出登录修改密码,记住密码依赖Java依赖环境Maven的3 Java 8 MySQL 5.7 Docker(任选)前端依赖环境节点npm工程说明部署...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part1

    涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。 第一部分 点睛Spring 4.x 第1 章 Spring ...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。 第一部分 点睛Spring 4.x 第1 章 Spring ...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part2

    涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。 第一部分 点睛Spring 4.x 第1 章 Spring ...

    web-api-demo:整合SpringBoot2,Swagger2,面向移动端提供RESTFul形式接口,致力于前分离,独立部署,服务响应端基础开发框架,开箱即用

    APITestController.java文件中DemoService接口依赖的Web-service-demo中的web-service-i模块,若暂无需求可将其注释掉。 ###技术组件: Spring Boot 2.0.4。发布 招摇2.6.1 Dubbo-spring-boot-starter 0.2.0 ...

    基于SpringBoot的墙绘产品展示交易平台的设计与实现.zip

    部署说明:虽然不要求介绍安装步骤,但通常会有一份简单的指南,指导用户如何将应用部署到服务器上,可能包括使用Docker容器化部署的说明。用户手册:帮助用户了解如何使用平台的各项功能,包括产品浏览、购买流程、...

    基于微服务架构的乐居租房网的设计与实现.rar

    在技术栈方面,乐居租房网可能采用了如Spring Boot、Docker、Kubernetes等技术来实现微服务的快速开发和部署。Spring Cloud或类似的微服务治理框架用于管理服务之间的通信和依赖关系。数据库设计上,考虑到微服务的...

    基于 OAuth2.0 协议的跨域认证授权开发套件.zip

    ,包含授权服务和开放平台 Docker 镜像,基于 Spring Boot Starter 的资源服务工具包和客户端(第三方应用)工具包 开发工具在软件开发生命周期中扮演着至关重要的角色,它们旨在简化和加速从概念设计到产品部署的...

    Guns-Separation-其他

    11、支持jenkins一键部署,另自带docker maven插件,支持docker部署。12、文件,短信,缓存,邮件等,利用接口封装,方便拓展。13、文件默认使用本地文件,短信默认使用阿里云sms,缓存默认使用内存缓存。14、文档...

    Guns-Separation v1.1

    11、支持jenkins一键部署,另自带docker maven插件,支持docker部署。 12、文件,短信,缓存,邮件等,利用接口封装,方便拓展。 13、文件默认使用本地文件,短信默认使用阿里云sms,缓存默认使用内存缓存。 14、...

    Guns后台管理系统-其他

    包含系统管理,代码生成,多数据库适配,SSO单点登录,工作流,短信,邮件发送,OAuth2登录,任务调度,持续集成,docker部署等功。支持Spring Cloud Alibaba微服务。社区活跃,版本迭代快,加群免费技术支持。 Guns...

Global site tag (gtag.js) - Google Analytics