IDEA + docker 发布 Spring-boot项目

准备环境

1.Spring-boot项目
2.Linux需配备docker

一、Spring-boot项目

1.一个简单Spring-boot项目demo,目录结构如下:

一个简单的Spring-boot demo,这里不做介绍。

2.注意:
这里我配置项目启动的端口为:8181

二、整合docker打包插件

1 .在pom文件中,添加plugin:

核心代码如下:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>

    <!--设置docker镜像的前缀“springboot”-->
    <docker.image.prefix>springboot</docker.image.prefix>
</properties>
<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	
	          <!--加入maven插件“docker-maven-plugin”-->
	          <plugin>
	              <groupId>com.spotify</groupId>
	              <artifactId>docker-maven-plugin</artifactId>
	              <version>0.4.11</version>
	              <configuration>
	                  <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
	                  <dockerDirectory>src/main/docker</dockerDirectory>
	                  <resources>
	                      <resource>
	                          <targetPath>/</targetPath>
	                          <directory>${project.build.directory}</directory>
	                          <include>${project.build.finalName}.jar</include>
	                      </resource>
	                  </resources>
	              </configuration>
	          </plugin>
	</plugins>
</build>

2.编写Dockerfile文件

在main文件下创建一个docker文件夹;并在docker文件夹下,编写Dockerfile文件。
Dockerfile文件内容如下:
在这里插入图片描述
核心代码如下:

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD spring-boot-01-helloworld-quick-2.0.4.RELEASE.jar spring-boot-docker.jar
RUN sh -c 'touch /spring-boot-docker.jar'
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /spring-boot-docker.jar" ]

Dockerfile文件:
1).FROM :指令用于指定其后构建新镜像所使用的基础镜像;
2).VOLUME:用于创建挂载点,即向基于所构建镜像创始的容器添加卷;
3).ADD:构建镜像,在run时,将我的 spring-boot-01-helloworld-quick.jar 构建成 名为 spring-boot-docker.jar镜像。

你可以学习更多关于Dockerfile 的命令here.

3.打包项目

执行package命令,打包项目
在这里插入图片描述

三、在服务器(Linux)上部署项目

1.检查docker环境

[root@VM_0_4_centos ~]# docker -v
Docker version 1.13.1, build 8633870/1.13.1
[root@VM_0_4_centos ~]# 

2.新建一个文件夹用于存放jar包和Dockerfile文件

[root@VM_0_4_centos ~]# docker -v
Docker version 1.13.1, build 8633870/1.13.1
[root@VM_0_4_centos ~]# mkdir myproject
[root@VM_0_4_centos ~]# ls -l
total 4
drwxr-xr-x 2 root root 4096 Nov 23 15:19 myproject
[root@VM_0_4_centos ~]# 

3.把本地的jar包和Dockerfile文件上传到服务器(Linux)上

[root@VM_0_4_centos ~]# docker -v
Docker version 1.13.1, build 8633870/1.13.1
[root@VM_0_4_centos ~]# ls -l
total 4
drwxr-xr-x 2 root root 4096 Nov 23 15:21 myproject
[root@VM_0_4_centos ~]# cd myproject
[root@VM_0_4_centos myproject]# ls -l
total 15848
-rw-r--r-- 1 root root      285 Nov 23 15:21 Dockerfile
-rw-r--r-- 1 root root 16201528 Nov 23 15:21 spring-boot-01-helloworld-quick-2.0.4.RELEASE.jar
[root@VM_0_4_centos myproject]# 

4.构建镜像并运行

4.1.在该myproject文件下 指令:docker build -t myproject .

注意-t 代表要构建的镜像的tag; . 代表当前目录,也就是Dockerfile所在的目录。

[root@VM_0_4_centos myproject]# ls -l
total 15848
-rw-r--r-- 1 root root      285 Nov 23 15:21 Dockerfile
-rw-r--r-- 1 root root 16201528 Nov 23 15:21 spring-boot-01-helloworld-quick-2.0.4.RELEASE.jar
[root@VM_0_4_centos myproject]# docker build -t myproject .
Sending build context to Docker daemon  16.2 MB
Step 1/5 : FROM frolvlad/alpine-oraclejdk8:slim
 ---> 3ee5e1ce00fc
Step 2/5 : VOLUME /tmp
 ---> Running in 21642af47107
 ---> cd58fc91999d
Removing intermediate container 21642af47107
Step 3/5 : ADD spring-boot-01-helloworld-quick-2.0.4.RELEASE.jar spring-boot-docker.jar
 ---> 6a3d7f96f711
Removing intermediate container d863bc08c15c
Step 4/5 : RUN sh -c 'touch /spring-boot-docker.jar'
 ---> Running in e8edd6aaff9f

 ---> 5147fca32df2
Removing intermediate container e8edd6aaff9f
Step 5/5 : ENTRYPOINT sh -c java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /spring-boot-docker.jar
 ---> Running in 3113492e6d80
 ---> 4d3f35ae2042
Removing intermediate container 3113492e6d80
Successfully built 4d3f35ae2042
[root@VM_0_4_centos myproject]# 
4.2.查看镜像:docker images

在这里插入图片描述

4.3.运行容器,启动项目

执行命令:docker run -d -p 8181:8181 --name myproject myproject
查看正在运行的容器:docker ps
注意:-p 映射端口时,将项目访问的端口映射到主机的端口
在这里插入图片描述

你可以学习更多关于**docker ** 的命令here.

4.3.访问链接,部署成功

在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值