欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用gradle构建一个springboot工程并用docker部署在阿里云镜像容器仓库的镜像

程序员文章站 2022-06-04 10:32:23
...

这篇文章我们来整理一下如何使用gradle来构建一个spring boot工程,并使用docker打包一个镜像,使用阿里镜像容器服务实现镜像的版本管理以及利用镜像部署服务。
我们需要的材料是:gradle、maven、docker、阿里云镜像仓库、一个Linux环境。

一,构建spring工程

使用ide工具构建一个spring工程,我们这里简单点构建一个springboot工程,本次是为了讲解清楚docker相关的操作流程,所以我们构造一个简单的工程即可。

使用gradle构建一个springboot工程并用docker部署在阿里云镜像容器仓库的镜像
我构建的工程目录结构如图

我是用gradle来构建工程的,gradle文件如下:

println "######################[begin build script] Env:[$env] ######################"

apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'com.palantir.docker'
apply plugin: 'java'

group = 'com.wlgdo.avatar'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
}
bootJar {
    project.group = "com.wlgdo"
    baseName = 'avatar-web-docker'
    version = '1.0'
}
docker {
    dependsOn build
    name "${bootJar.baseName}"
    files bootJar.archivePath
    buildArgs(['JAR_FILE': "${bootJar.archiveName}"])
    println "###########JAR_FILE:-----${bootJar.archiveName}#############"

}


dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    compile 'org.springframework.boot:spring-boot-starter-web:2.1.0.RELEASE'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

可能因为gradle版本的不同文件有差异,可根据具体错误来进行修改即可

二、添加docker文件

在主目录下添加dockerfile文件

FROM openjdk:8-jdk-alpine
VOLUME /root/tmp
ARG avatar-web-docker-1.0.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom"," jar","app.jar"]

其中:FROM指定基础镜像,必须为第一个命令
VOLUME:用于指定持久化目录
ARG:用于指定传递给构建运行时的变量
COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
ENTRYPOINT:配置容器,使其可执行化。配合CMD可省去"application",只使用参数。

三、安装docker

docker的安装,因为我的win10home版,有些组建是不持支的,所以我直接就在我的Linux机上安装了,根据不用的Linux版本安装就行,比如我的是ubuntu,直接apt install docker就可以了,没有特殊情况,环境配置用默认就行,如需修改,参考网上资料即可
安装成功后,可以使用“docker images”来查看本地镜像列表,如图

使用gradle构建一个springboot工程并用docker部署在阿里云镜像容器仓库的镜像
也可以使用“docker run hello-world”来看是否成功。
使用gradle构建一个springboot工程并用docker部署在阿里云镜像容器仓库的镜像
如闪图所示,证明docker安装OK了

四、打包docker镜像,并上传到阿里云

  1. 第一步:使用gradle命令来打包docker

首先将远程代码下载到本地,进入到build.gradle文件目录中,执行打包命令:

gradle build:docker

使用gradle构建一个springboot工程并用docker部署在阿里云镜像容器仓库的镜像
如图示打包成功
2. 第二步:重命名镜像

docker tag [ImageId] [image-name]:[镜像版本号]

使用gradle构建一个springboot工程并用docker部署在阿里云镜像容器仓库的镜像
如图,我将我的最近镜像写为1.8版本
3. 第三步:上传docker Image到阿里云
申请阿里云的镜像库,至于怎么申请很简单的点击链接阿里云镜像
申请完成后,在服务端登陆即可
登陆命令“docker login --username=[username] registry.cn-beijing.aliyuncs.com
登录成功后,使用命令“docker push registry.cn-beijing.aliyuncs.com/wlgdo/avatars:1.8”上传即可
使用gradle构建一个springboot工程并用docker部署在阿里云镜像容器仓库的镜像
坐等上传完成即可
使用gradle构建一个springboot工程并用docker部署在阿里云镜像容器仓库的镜像
打开阿里云镜像服务,可以找到1.8版本号的镜像记录。

五、下载使用docker镜像

其实最终的目的我们是要使用我们打包的docker镜像的,当我们把它放到镜像仓库的时候,之需在docker端下载下来,运行即可。
命令“docker push registry.cn-beijing.aliyuncs.com/wlgdo/avatar:1.8”
下载下来之后,运行指令“docker run registry.cn-beijing.aliyuncs.com/wlgdo/avatar:1.8”,
使用gradle构建一个springboot工程并用docker部署在阿里云镜像容器仓库的镜像
访问工程
使用gradle构建一个springboot工程并用docker部署在阿里云镜像容器仓库的镜像
工程正常启动,docker镜像部署完成。

至此,一个工程从开始到docker部署就全部完成了,这里面涉及到的gradle,docker的一些基本安装配置工作没有介绍,需要的同学可以先去查查资料或者可以找我。
需要源码的同学