springboot 集成docker插件 自动化部署

文章目录

  • 准备项目
  • 服务器准备
  • 安装docker插件
  • POM
  • 编译
  • dockerfile 部署

准备项目

准备springboot,创建接口端口号7781
springboot 集成docker插件 自动化部署_第1张图片

服务器准备

docker开启2375端口教程

vi /lib/systemd/system/docker.service

替换

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

systemctl daemon-reload
service docker restart

开放端口号


firewall-cmd --zone=public --add-port=2375/tcp --permanent

重启查询

firewall-cmd --reload
firewall-cmd --query-port=2375/tcp

访问 http://docker服务器ip:2375/version

安装docker插件

springboot 集成docker插件 自动化部署_第2张图片
springboot 集成docker插件 自动化部署_第3张图片
下面多出了窗口
springboot 集成docker插件 自动化部署_第4张图片

POM

    <properties>
        <java.version>1.8</java.version>
        <docker.image.prefix>myobject</docker.image.prefix>
    </properties>



 <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.2.2</version>

       <configuration>
           <!--镜像名称 Ryan-->
           <!-- 镜像名称必须全部小写 -->
           <imageName>${docker.image.prefix}/${project.name}</imageName>
           <!--指定标签-->
           <imageTags>
               <imageTag>latest</imageTag>
           </imageTags>
           <!--基础镜像jdk 1.8-->
           <baseImage>java</baseImage>
           <!--制作者提供本人信息-->
           <maintainer>中国 yyds</maintainer>
           <!--切换到/ROOT目录-->
           <workdir>/ROOT</workdir>
           <!--<cmd>["java", "-version"]</cmd-->
           <entryPoint>["java","-jar","${project.build.finalName}.jar"]</entryPoint>

           <!--指定远程docker api地址-->
           <dockerHost>http://192.168.9025852.110:2375</dockerHost>

           <!--复制jar包到docker容器指定目录位置-->
           <resources>
               <resource>
                   <targetPath>/ROOT</targetPath>
                   <!--用于指定需要复制的根目录,${project.build.directory}表示target目录-->
                   <directory>${project.build.directory}</directory>
                   <!--用于指定需要复制的文件,${project.build.finalName}.jar表示打包后的jar文件-->
                   <include>${project.build.finalName}.jar</include>
               </resource>
           </resources>
       </configuration>
       <executions>
           <!-- package之前清除上一次构建的image -->
           <execution>
               <id>remove-image</id>
               <phase>package</phase>
               <goals>
                   <goal>removeImage</goal>
               </goals>
           </execution>
           <!--当执行mvn package时,执行:mvn  package docker:build-->
           <execution>
               <id>build-image</id>
               <phase>package</phase>
               <goals>
                   <goal>build</goal>
               </goals>
           </execution>
       </executions>
   </plugin>

编译

1.clear 2.package
springboot 集成docker插件 自动化部署_第5张图片
springboot 集成docker插件 自动化部署_第6张图片
springboot 集成docker插件 自动化部署_第7张图片
springboot 集成docker插件 自动化部署_第8张图片
在这里插入图片描述
在这里插入图片描述

dockerfile 部署

#指定基础镜像,在其上进行定制
FROM java:8
ENV LANG C.UTF-8

# 统一容器与服务器时间
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

#这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层
VOLUME /tmp
# 复制打包后的jar名称 重命名为app.jar
ADD demo-0.0.1-SNAPSHOT.jar app.jar

#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 7787

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar","-c"]

springboot 集成docker插件 自动化部署_第9张图片
springboot 集成docker插件 自动化部署_第10张图片
springboot 集成docker插件 自动化部署_第11张图片
springboot 集成docker插件 自动化部署_第12张图片
springboot 集成docker插件 自动化部署_第13张图片

你可能感兴趣的:(java)