Spring Boot配置docker-maven-plugin实现构建与推送镜像(Dockerfile)

0、前提:docker、 maven、java均已安装,docker 镜像私服均已设置网络也开通

本文基于Docker进行构建,也可以指定构建信息到 POM 中构建,大家自行搜索

1、首先是一些网络和docker相关配置的打开

2375是docker远程操控的默认端口,通过这个端口可以直接对远程的docker daemon进行操作;
任何能连通到这台docker宿主机的的机器都可以随意操作
这台docker宿主机的docker daemon(docker run、docker ps、docker rm等等这些命令)
推荐进行tls+CA证书配置进行远程操控,这里不赘述,可以自行baidu google
这里为了方便使用,使用非安全的方式试验

配置docker,开放2375端口
Docker的2375端口是默认关闭的,如果我们要使用到它,就需要进行以下的配置:

1、安装有docker的服务器,修改docker.service文件:

vi /etc/systemd/system/docker.service
具体文件所在地,得看你安装docker的位置,如果不知道自己安装在哪里了,执行以下指令去查找:
sudo find / -name docker.service

2、修改docker.service

找到文件以下内容:
ExecStart=/usr/bin/dockerd
修改为:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

3、重启docker服务
systemctl daemon-reload
systemctl restart docker

2、针对maven 的 setting.xml 文件的修改

1、增加server配置,填充私服harbor的账号密码
 
      docker-hub
      admin
      Harbor12345
    

2、其余配置 和 maven本身配置自己私服没区别


  
  

  
  

 
    
      docker-hub
      admin
      Harbor12345
    
     
      nexus-central
      admin
      Aaaa1111
    
     
      releases
       admin
      Aaaa1111
    
     
      snapshots
       admin
      Aaaa1111
    
  

   
  
   
  nexus-public
  *
  Nexus central
  http://dev07.dfhamit.cn:8081/repository/maven-public



 
  
  	
  		nexus
  		
         
          nexus
          http://dev07.dfhamit.cn:8081/repository/maven-public
          
              true
          
          
              true
          
         
        
        
          
          nexus
          http://dev07.dfhamit.cn:8081/repository/maven-public
          
              true
          
          
              true
          
         
        
        
  	
  		aliyun
        
            
          aliyun
          https://maven.aliyun.com/repository/spring
          
              true
          
          
              true
          
            
        
        
            
          aliyun
          https://maven.aliyun.com/repository/spring
          
              true
          
          
              true
          
            
        
      
  
  
  
    nexus
   
  

3、项目的pom文件,引入docker maven plugin 及相关配置


    
        
            releases
            dfham maven releases
            http://10.118.193.117:8081/repository/maven-releases/
        
        
            snapshots
            dfham maven snapshots
            http://10.118.193.117:8081/repository/maven-snapshots/
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                2.0.3.RELEASE
                
                    true
                    
                    com.dfham.perfma.PerfmaApplication
                    
                    ZIP
                
                
                    
                        
                            
                            repackage
                        
                    
                
            
            
            
                org.apache.maven.plugins
                maven-surefire-plugin
                
                    true
                
            
            
                org.apache.maven.plugins
                maven-resources-plugin
                
                    
                        cert
                    
                
            

            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.6
            

            
            
            
                com.spotify
                docker-maven-plugin
                1.2.0
                
                
                
                    
                        build-push
                        deploy
                        
                            build
                            push
                        
                    
                
                
                    
                    http://localhost:2375

                    
                    
                    docker-hub
                    1
                    2000
                    http://10.118.192.228
                    
                    10.118.192.228/zhoushun/${project.artifactId}:3.0
                    

                    



                    ${project.basedir}/src/main/docker
                    
                    
                    
                        
                            /
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    
                
            
        
    

4、Dockerfile,默认放在项目 src/main/docker 下,其他位置会copy多余的东西

FROM 10.118.192.228/zhoushun/openjdk:8-jre-alpine
WORKDIR /opt/perfma
COPY perfma-test-2.2.jar /opt/perfma
EXPOSE 8080

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories  && apk update
RUN apk add tzdata \
    && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone

CMD ["java","-jar","perfma-test-2.2.jar"]

# mvn clean package docker:build docker:push
# mvn package -Dmaven.test.skip=true && mvn docker:build -DpushImage -DdockerImageTags=$CI_COMMIT_REF_NAME

# docker run -it -d -p 8080:8080 --name perfma3.0 10.118.192.228/zhoushun/perfma-test:3.0
# docker exec -it perfma3.0 /bin/sh

# 删除tag none 的镜像
# docker image prune

5、运行过程

Spring Boot配置docker-maven-plugin实现构建与推送镜像(Dockerfile)_第1张图片

Spring Boot配置docker-maven-plugin实现构建与推送镜像(Dockerfile)_第2张图片 Spring Boot配置docker-maven-plugin实现构建与推送镜像(Dockerfile)_第3张图片

Spring Boot配置docker-maven-plugin实现构建与推送镜像(Dockerfile)_第4张图片

参考文章:

Docker基于Centos7构建JDK8镜像 (qq.com)

(1569条消息) 【docker的那些事】Dockerfile构建并推送到阿里云仓库_docker push 阿里云_陈橙橙丶的博客-CSDN博客

SpringBoot项目使用docker-maven-plugin插件构建docker镜像以及推送到docker hub或docker registry私服_OkidoGreen的博客-CSDN博客

(1570条消息) Spring Boot配置docker-maven-plugin实现构建与推送镜像_spring-boot-maven-plugin_明天再去学习的博客-CSDN博客 Docker-通过docker-maven-plugin插件实现docker镜像构建并自动发布到远程docker服务器 (bbsmax.com)

docker-maven-plugin - 简书 (jianshu.com)

你可能感兴趣的:(SpringBoot-实战,docker,spring,boot,maven)