spring boot 创建 docker 镜像——迹忆客-ag捕鱼王app官网

docker 是一种容器管理服务,可简化构建和部署。对于 docker 的初学者,可以在此链接中详细了解 - https://www.jiyik.com/w/docker

在本章中,我们将了解如何使用 maven 和 gradle 依赖项为 spring boot 应用程序创建 docker 映像。


创建 dockerfile

首先,在 src/main/docker 目录下创建一个名为 dockerfile 的文件,其内容如下所示。 请注意,此文件对于创建 docker 镜像很重要。

from java:8
volume /tmp
add dockerapp-0.0.1-snapshot.jar app.jar
run bash -c 'touch /app.jar'
entrypoint ["java","-djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

maven

对于 maven,将 docker maven 插件添加到构建配置文件 pom.xml


   spring-boot-tutorialspoint


   
      
         com.spotify
         docker-maven-plugin
         1.0.0
         
         
            ${docker.image.prefix}/${project.artifactid}
            src/main/docker
            
               
                  ${project.build.directory}
                  ${project.build.finalname}.jar
               
            
         
      
      
      
         org.springframework.boot
         spring-boot-maven-plugin
      
   
   

完整的 pom.xml 文件如下所示



    4.0.0
    com.jiyik
    dockerapp
    1.0-snapshot
    
        org.springframework.boot
        spring-boot-starter-parent
        1.5.9.release
    
    
        spring-boot-jiyik
    
    
        
            org.springframework.boot
            spring-boot-starter
        
        
            de.codecentric
            spring-boot-admin-server
            1.5.5
        
        
            de.codecentric
            spring-boot-admin-server-ui
            1.5.5
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            de.codecentric
            spring-boot-admin-starter-client
            1.5.5
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
            io.springfox
            springfox-swagger2
            2.7.0
        
        
            io.springfox
            springfox-swagger-ui
            2.7.0
        
        
            org.springframework.boot
            spring-boot-starter-web
        
    
    
        
            
                com.spotify
                docker-maven-plugin
                1.0.0
                
                    ${docker.image.prefix}/${project.artifactid}
                    src/main/docker
                    
                        
                            ${project.build.directory}
                            ${project.build.finalname}.jar
                        
                    
                
            
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

现在,我们可以使用 maven 命令运行应用程序

$  mvn package docker:build

gradle

要使用 gradle 构建配置构建 docker 镜像,我们需要添加 docker 插件,并且需要编写任务 builddocker 来创建 docker 镜像。

gradle docker 配置的代码如下所示。

buildscript {
   .....
   dependencies {
      .....
      classpath('se.transmode.gradle:gradle-docker:1.2')
   }
}
group = 'spring-boot-tutorialspoint'
.....
apply plugin: 'docker'
task builddocker(type: docker, dependson: build) {
   applicationname = jar.basename
   dockerfile = file('src/main/docker/dockerfile')
   dofirst {
      copy {
         from jar
         into stagedir
      }
   }
}

完整的 build.gradle 文件如下所示。

buildscript {
   ext {
      springbootversion = '1.5.9.release'
   }
   repositories {
      mavencentral()
   }
   dependencies {
      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springbootversion}")
      classpath('se.transmode.gradle:gradle-docker:1.2')
   }
}
group = 'spring-boot-tutorialspoint'
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'docker'
group = 'com.jiyik'
version = '0.0.1-snapshot'
sourcecompatibility = 1.8
repositories {
   mavencentral()
}
dependencies {
   compile('org.springframework.boot:spring-boot-starter-web')
   testcompile('org.springframework.boot:spring-boot-starter-test')
}
task builddocker(type: docker, dependson: build) {
   applicationname = jar.basename
   dockerfile = file('src/main/docker/dockerfile')
   dofirst {
      copy {
         from jar
         into stagedir
      }
   }
}

现在,使用如下所示的命令创建一个 docker 映像

$ gradle build builddocker

查看笔记

扫码一下
查看教程更方便
网站地图