Spring-Boot学习(2)之使用docker打包(基于IntellijIDEA)

上篇博客我搭好了spring-boot项目并可以运行,但是如何放在服务器上运行?

 方案1:将本地打包好的jar包(运行以后会自动生成)放在服务器上,配置服务脚本:

进入服务文件目录:cd /etc/systemd/system/
创建服务文件:(文件名对应项目名,可自定义):vim springboot.service
[Unit]
Description=springboot

After=syslog.target
[Service]
ExecStart=/usr/local/jdk1.8.0_191/bin/java -jar /usr/local/my-site-master/target/springboot
-1.0.2.RELEASE.jar
[Install]
WantedBy=multi-user.target

启动:systemctl start springboot 或者systemctl start springboot.service

停止:systemctl stop springboot或者systemctl stop springboot.service
状态:systemctl status springboot
开机启动:systemctl enable springboot

方案2:使用docker将spring-boot打成镜像运行:

这个需要准备:1.centOS7系统服务器

                         2.安装好了JDK

                         3.安装好了Maven

                         4.安装docker

以上安装十分简单,可以百度一大堆,节省篇幅我就不写如何安装以上环境。

正题:

        1.在项目中添加docker支持,在pom.xml文件中新增以下标红部分即是需要添加的内容

<?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.example</groupId>
   <artifactId>spring-boot</artifactId>
   <version>0.0.1</version>
   <packaging>jar</packaging>

   <name>Spring Boot</name>
   <description>A very useful project to demonstrate animated gif support in Spring Boot 2</description>

   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.0.0.RELEASE</version>
   </parent>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
      <docker.image.prefix>springboot</docker.image.prefix>
   </properties>
   <dependencies>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter</artifactId>
      </dependency>
   </dependencies>

   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
            <!-- Docker maven plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</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>
            <!-- Docker maven plugin -->
      </plugins>
   </build>

</project>  在src/main/docker下创建 Dockerfile 文件,Dockerfile 文件用来说明如何来构建镜像,没有docker包自己创建,写入如下内容: 
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD spring-boot-docker-1.0.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.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

     2.将项目拷贝进服务器,目录个人建议放在/usr/local/下

     

     3.进入项目路径下进行打包测试。

     

     

#打包
mvn package
#启动
java -jar target/spring-boot-0.0.1.jar

看到这个表示打包成功,服务器上可以看到,jar包已经生成。

  4.接下来我们使用 DockerFile 构建镜像。

    项目目录下执行:

mvn package docker:build

   

  看到这里就代表已经将镜像打包好了;

  使用docker images命令查看构建好的镜像:

运行该镜像:

docker run -p 8080:8080 -t springboot/spring-boot

 

 启动完成之后我们使用docker ps查看正在运行的镜像:

可以看到我们构建的容器正在在运行,访问浏览器:http://自己服务器IP:8080/Hello?name=Spring-Boot,返回

说明使用 Docker 部署 Spring Boot 项目成功! 

猜你喜欢

转载自blog.csdn.net/qq_34128089/article/details/88080059