写点什么

Gradle Docker 插件将 SpringBoot 应用程序打包为 Docker 镜像

用户头像
wjchenge
关注
发布于: 2021 年 02 月 01 日
Gradle Docker插件将SpringBoot应用程序打包为Docker镜像

环境介绍

Gradle Version:5.6.4
SpringBoot Version:2.3.8.RELEASE
Docker Server Version:17.12.1-ce
JDK Version:1.8.0_191
复制代码


Docker 开启 Remote API 访问 2375 端口


该插件可以使用 buildscript 语法或插件 DSL 来应用


1、使用 buildscript 语法应用插件

buildscript {    repositories {        gradlePluginPortal()    }    dependencies {        classpath 'com.bmuschko:gradle-docker-plugin:6.7.0'    }}
apply plugin: 'com.bmuschko.docker-spring-boot-application'
复制代码


2、应用插件 使用插件 DSL

plugins {    id 'com.bmuschko.docker-spring-boot-application' version '6.7.0'}
复制代码


插件的默认配置属性


build.gradle 配置修改默认值

//打包docker镜像配置docker {    url = 'tcp://192.168.1.135:2375'    springBootApplication {        baseImage = 'openjdk:8-alpine'        images = ['app-server:latest']    }}
复制代码


url 属性默认值:

unix:///var/run/docker.sock (Unix)tcp://127.0.0.1:2375 (Windows)
复制代码


内置 tasks


任务名称:dockerSyncBuildContext 依赖任务:classes 类型:TaskProvider<Sync> 描述:将应用程序文件复制到临时目录,以便创建镜像。


任务名称:dockerCreateDockerfile 依赖任务:dockerSyncBuildContext 类型:TaskProvider<Dockerfile> 描述:为 Spring Boot 应用程序创建 Docker 镜像。


任务名称:dockerBuildImage 依赖任务:dockerCreateDockerfile 类型:TaskProvider<DockerBuildImage> 描述:为 Spring Boot 应用程序构建 Docker 镜像。


任务名称:dockerPushImage 依赖任务:dockerBuildImage 类型:TaskProvider<DockerPushImage> 描述:将创建的 Docker 镜像推送到仓库。


执行构建任务


build.gradle 路径下执行如下命令:

gradle -q dockerBuildImage
复制代码


执行完成后登录配置的远程 ip 地址,执行如下命令:

docker images
复制代码



至此基本配置就算完成了。



其他问题


再次执行

gradle -q dockerBuildImage
复制代码


执行完成后登录配置的远程 ip 地址,执行如下命令:

docker images
复制代码



对比上次的执行结果发现,之前的镜像 id 就为目前为<none>的镜像。


解决该问题的方案为删除为<none>的镜像,Docker 提供了原生命令如下:

docker image prune -f
复制代码


用户头像

wjchenge

关注

还未添加个人签名 2018.07.27 加入

还未添加个人简介

评论

发布
暂无评论
Gradle Docker插件将SpringBoot应用程序打包为Docker镜像