使用docker 部署spring boot项目

我这里的环境是自己的阿里云服务器 Centos ,由于服务器中已经有了java环境以及docker容器,这里不介绍jdk安装及配置和docker的安装。

1、新建项目 service01,如下:

使用docker 部署spring boot项目_第1张图片

使用docker 部署spring boot项目_第2张图片

pom:



	4.0.0

	com.service01
	cloud_service_01
	0.0.1-SNAPSHOT
	jar

	cloud_service_01
	service01

	
		org.springframework.boot
		spring-boot-starter-parent
		1.5.10.RELEASE
		 
	

	
		UTF-8
		UTF-8
		1.8
	

	
		
			org.springframework.boot
			spring-boot-starter
		

		
			org.springframework.boot
			spring-boot-starter-test
			test
		


		
			org.springframework.cloud
			spring-cloud-starter-eureka
			1.4.5.RELEASE
		

		
			org.springframework.cloud
			spring-cloud-starter-feign
			1.4.3.RELEASE
		

		
		
			org.springframework.cloud
			spring-cloud-starter-hystrix
			1.2.5.RELEASE
		

		
			org.springframework.cloud
			spring-cloud-starter-ribbon
			1.4.5.RELEASE
		

		
			org.springframework.boot
			spring-boot-starter-actuator
		

		
			org.springframework.retry
			spring-retry
			1.2.2.RELEASE
		


	

	
		service01
		

			
				org.springframework.boot
				spring-boot-maven-plugin
			

			
			
				org.apache.maven.plugins
				maven-surefire-plugin
				
					true
				
			

			
			
				org.apache.maven.plugins
				maven-war-plugin
				2.5
				
					${project.build.finalName}
					false
				
			

			
			
				com.spotify
				docker-maven-plugin
				1.0.0
				
					${project.build.finalName}
					src/main/docker
					
						
							/
							${project.build.directory}
							${project.build.finalName}.jar
						
					
				
			
		
	


2、项目pom--> plugins 中添加 Docker 构建插件:

   

   
   service01
  
			
				com.spotify
				docker-maven-plugin
				1.0.0
				
					${project.build.finalName}
					src/main/docker
					
						
							/
							${project.build.directory}
							${project.build.finalName}.jar
						
					
				
			
	 

3、在目录src/main/docker下创建 Dockerfile 文件,Dockerfile 文件用来说明如何来构建镜像,由于是入门级这里配置咱们怎么简单怎么来,后期慢慢深入研究。

FROM openjdk:8-jdk-alpine
ADD springboot-docker.jar  springboot-docker.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/springboot-docker.jar"]

FROM ,表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载
VOLUME ,VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
ADD ,拷贝文件并且重命名
ENTRYPOINT ,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT
 
 注意:这里 ADD 指令中的 springboot-docker.jar 要与项目pom -> plugins 中 节点的名字要一致

 4、项目配置完成之后要确认服务器中是否配有maven的环境变量,如果没有则进行mavean 配置:
    1》下载maven包:wget http://mirrors.shu.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
    2》解压:tar vxf apache-maven-3.3.9-bin.tar.gz
    3》重命名:mv apache-maven-3.3.9-bin maven3
    4》配置环境变量:vi /etc/profile
       MAVEN_HOME=/usr/local/maven3
       export MAVEN_HOME
       export PATH=${PATH}:${MAVEN_HOME}/bin
    5》使环境变量生效:source /etc/profile
5、为了方便起见 将代码提交至git,(或者自行传到服务器上也行)
6、克隆代码:git clone
7、构建docker image, 进入项目目录(与pom同级的目录),mvn package docker:build  第一次构建可能时间久一点,耐心等待,构建完成出现如下提示标识成功:

使用docker 部署spring boot项目_第3张图片

注:如果报错:

[ERROR] No plugin found for prefix 'docker' in the current project 
and in the plugin groups [org.sonatype.plugins, org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/Users/../Repository), nexus (http://3.2.4.2:8888/repository/maven-public/)]

可以试试在 maven conf/setting.xml 的配置文件中添加

  
    com.spotify  

8、构建完成之后查看镜像:docker images
使用docker 部署spring boot项目_第4张图片

9、接下来创建该镜像的容器:docker run --name service01 -d -p 9005:8809 e3f0dbc002f8

10、访问:http://ip地址:9005/ping

使用docker 部署spring boot项目_第5张图片

你可能感兴趣的:(Spring,Boot,微服务)