写在前面

最近,在研究如何使用Maven将SpringBoot项目打包成Docker镜像并发布到Harbor仓库,网上翻阅了很多博客和资料,发现大部分都是在复制粘贴别人的东西,没有经过实践的检验,根本解决不了问题,纯属扯淡。作为一个技术人,经过不断的研究和实践,终于实现了在Spring Tool Site中使用Maven将SpringBoot项目打包成Docker镜像,并将镜像文件上传到Harbor仓库。

注意:本文使用的SpringBoot开发环境是Spring Tool Site,IDEA开发环境对SpringBoot项目的打包操作和将Docker镜像上传到Harbor仓库操作相同,大家也可参考此文章进行实现。

一、系统环境

1.服务器环境

操作系统为:CentOS-8-x86_64-1905-dvd1.iso

2.开发环境

Windows10操作系统

二、服务器安装Docker环境

安装Docker环境

1.添加阿里云镜像

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.安装containerd

dnf install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm

3.安装Docker

yum install docker-ce docker-ce-cli

4.设置开机自启Docker并启动Docker

systemctl enable docker.service
systemctl start docker.service

5.查看Docker版本

[root@binghe ~]# docker version
Client: Docker Engine - Community
Version: 19.03.8
API version: 1.40
Go version: go1.12.17
Git commit: afacb8b
Built: Wed Mar 11 01:27:04 2020
OS/Arch: linux/amd64
Experimental: false Server: Docker Engine - Community
Engine:
Version: 19.03.8
API version: 1.40 (minimum version 1.12)
Go version: go1.12.17
Git commit: afacb8b
Built: Wed Mar 11 01:25:42 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683

也可以将阿里云Docker镜像仓库添加到/etc/docker/daemon.json文件中,如下所示。

{
"registry-mirrors": ["https://zz3sblpi.mirror.aliyuncs.com"]
}

安装docker-compose环境

1.下载docker-compose文件

curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2.为docker-compose文件赋予可执行权限

chmod a+x /usr/local/bin/docker-compose

3.查看docker-compose版本

[root@binghe ~]# docker-compose version
docker-compose version 1.25.5, build 8a1c60f6
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019

三、服务器安装Harbor私有仓库

1.下载Harbor的离线安装版本

wget https://github.com/goharbor/harbor/releases/download/v1.10.2/harbor-offline-installer-v1.10.2.tgz

2.解压Harbor的安装包

tar -zxvf harbor-offline-installer-v1.10.2.tgz

解压成功后,会在服务器当前目录生成一个harbor目录。

3.修改Harbor的配置

注意:这里,我将Harbor的端口修改成了1180,如果不修改Harbor的端口,默认的端口是80。

(1)修改harbor.yml文件。

cd harbor
vim harbor.yml

修改的配置项如下所示。

hostname: 192.168.0.10
http:
port: 1180
harbor_admin_password: binghe123

(2)修改docker-compose.yml文件

vim docker-compose.yml

修改的配置项如下所示。

ports:
- 1180:80

(3)修改config.yml文件

cd common/config/registry
vim config.yml

修改的配置项如下所示。

realm: http://192.168.0.10:1180/service/token

(4)修改daemon.json文件

修改/etc/docker/daemon.json文件,没有的话就创建,在/etc/docker/daemon.json文件中添加如下内容。

[root@binghe~]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://zz3sblpi.mirror.aliyuncs.com"],
"insecure-registries":["192.168.0.12:1180"]
}

也可以在服务器上使用 ip addr 命令查看本机所有的IP地址段,将其配置到/etc/docker/daemon.json文件中。这里,我配置后的文件内容如下所示。

{
"registry-mirrors": ["https://zz3sblpi.mirror.aliyuncs.com"],
"insecure-registries":["192.168.0.0/16","172.17.0.0/16", "172.18.0.0/16", "172.16.29.0/16"]
}

4.安装并启动harbor

配置完成后,输入如下命令即可安装并启动Harbor

[root@binghe harbor]# ./install.sh

5.登录Harbor并添加账户

安装成功后,在浏览器地址栏输入http://192.168.0.10:1180打开链接,如下图所示。

输入用户名admin和密码binghe123,登录系统,如下图所示

接下来,我们选择用户管理,添加一个管理员账户,为后续在Spring Tool Site中打包Docker镜像和上传Docker镜像做准备。添加账户的步骤如下所示。

此处填写的密码为Binghe123。

点击确定后,如下所示。

此时,账户binghe还不是管理员,此时选中binghe账户,点击“设置为管理员”。

此时,binghe账户就被设置为管理员了。到此,Harbor的安装就完成了。

如果安装Harbor后,大家需要修改Harbor的端口,首先按照修改Harbor的配置的步骤修改Harbor的端口配置,将配置项中的1180端口修改成你需要的端口。接下来,需要重启Docker和Harbor。

重启Docker

systemctl daemon-reload
systemctl restart docker.service

重启Harbor

[root@binghe harbor]# docker-compose down
Stopping harbor-log ... done
Removing nginx ... done
Removing harbor-portal ... done
Removing harbor-jobservice ... done
Removing harbor-core ... done
Removing redis ... done
Removing registry ... done
Removing registryctl ... done
Removing harbor-db ... done
Removing harbor-log ... done
Removing network harbor_harbor [root@binghe harbor]# ./prepare
prepare base dir is set to /mnt/harbor
Clearing the configuration file: /config/log/logrotate.conf
Clearing the configuration file: /config/nginx/nginx.conf
Clearing the configuration file: /config/core/env
Clearing the configuration file: /config/core/app.conf
Clearing the configuration file: /config/registry/root.crt
Clearing the configuration file: /config/registry/config.yml
Clearing the configuration file: /config/registryctl/env
Clearing the configuration file: /config/registryctl/config.yml
Clearing the configuration file: /config/db/env
Clearing the configuration file: /config/jobservice/env
Clearing the configuration file: /config/jobservice/config.yml
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
loaded secret from file: /secret/keys/secretkey
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir [root@binghe harbor]# docker-compose up -d
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-db ... done
Creating redis ... done
Creating registry ... done
Creating registryctl ... done
Creating harbor-core ... done
Creating harbor-jobservice ... done
Creating harbor-portal ... done
Creating nginx ... done [root@binghe harbor]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS

四、Windows系统安装并配置Docker

1.安装Docker

在Windows上安装Docker环境就比较简单了,到Docker官网https://www.docker.com/products/ 下载Docker Desktop Installer.exe安装包,直接双击安装即可。

2.修改docker下载的镜像存放到其他盘

(1)在D盘创建一个存放docker虚拟机的文件夹,如下面图中所示:

(2)创建好以后,找到桌面右下角的docker图标,在上面点右键,选择settings,打开docker的设置界面。



(3)然后在docker的设置界面中点击Resources选项下的ADVANCED设置选项,即高级设置。

(4)在高级设置中,我们可以看到有一个disk image location,即硬盘镜像的存放位置。默认是在C盘,点击旁边的browse按钮

(5)这个时候会弹出文件夹选择窗口,依次找到此电脑->D盘->docker文件夹,然后点击确定。然后回到设置界面,会看到镜像文件的位置变成了我们设置的文件夹。点击设置界面右下角的apply应用设置。

(6)选择完成后,点击右下角的Apple&Restart按钮重启Docker。

(7)重启完成后,我们打开D盘的docker下的DockerDesktop文件夹,会发现docker的虚拟机文件已经转移到了这个目录。如下面图中所示。在前面的经验中我们已经说过,在windows平台上,docker是通过hyper-v打开一个docker虚拟机来提供docker服务。因此随着你下载的镜像越多,这个docker镜像文件会越来越大。因此你一定要及时清理不使用的docker虚拟机里的镜像。

3.打开本地Docker的2375端口

打开方式:右击右下角的小鲸鱼(我用的是docker for window),点击settings如下图

4.配置Docker

(1)在cmd命令行输入如下ip config命令来查看本地的IP地址,如下所示。

(2)配置Docker

选择Docker Engine选项,并在右侧的文本框中输入如下信息。

{
"registry-mirrors": [
"https://zz3sblpi.mirror.aliyuncs.com"
],
"insecure-registries": [
"192.168.0.0/16",
"172.18.14.0/16"
],
"debug": true,
"experimental": false
}

如下图所示。

五、配置Harbor

使用binghe账号和密码Binghe123登录Harbor,并新建一个test项目。

此时,在Harbor中的项目就创建成功了。

六、SpringBoot项目配置Docker

创建SpringBoot项目比较简单,我这里就不再赘述如何创建SpringBoot项目,我们直接从SpringBoot项目配置Docker开始说。

1.创建Dockerfile文件

在需要运行的maven模块(SpringBoot启动类所在的模块)根目录下创建Dockerfile文件,内容如下所示。

FROM java:8
MAINTAINER binghe
VOLUME /tmp
ADD target/*jar app.jar
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]

2.修改pom.xml文件

在需要运行的maven模块(SpringBoot启动类所在的模块)的pom.xml中增加以下配置。

<properties>
<docker.repostory>192.168.0.10:1180</docker.repostory>
<docker.registry.name>test</docker.registry.name>
<docker.image.tag>1.0.1</docker.image.tag>
<docker.maven.plugin.version>1.4.10</docker.maven.plugin.version>
</properties> <build>
<finalName>binghe-starter</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- docker的maven插件,官网:https://github.com/spotify/docker‐maven‐plugin -->
<!-- Dockerfile maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${docker.maven.plugin.version}</version>
<executions>
<execution>
<id>default</id>
<goals>
<!--如果package时不想用docker打包,就注释掉这个goal-->
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<contextDirectory>${project.basedir}</contextDirectory>
<!-- harbor 仓库用户名及密码-->
<useMavenSettingsForAuth>useMavenSettingsForAuth>true</useMavenSettingsForAuth>
<repository>${docker.repostory}/${docker.registry.name}/${project.artifactId}</repository>
<tag>${docker.image.tag}</tag>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin> </plugins> <resources>
<!-- 指定 src/main/resources下所有文件及文件夹为资源文件 -->
<resource>
<directory>src/main/resources</directory>
<targetPath>${project.build.directory}/classes</targetPath>
<includes>
<include>**/*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>

其中,几个重要的参数说明如下所示。

  • docker.repostory:Harbor仓库的地址,ip:port
  • docker.registry.name:上传的Docker镜像前缀,此前缀一定要和Harbor中的项目名称一致,表示打包后的Docker镜像会上传到Harbor的哪个项目中(重点,不然会报错)。
  • docker.image.tag:Docker镜像的标签,也就是版本。
  • docker.maven.plugin.version:Docker Maven插件的版本。

七、配置Maven

首先,我们查看下Spring Tool Site中配置的Maven,如下所示。

在Maven的setting.xml文件中添加如下配置。

<!--配置权限,使用默认用户-->
<servers>
<server>
<id>192.168.0.10:1180</id>
<username>binghe</username>
<password>Binghe123</password>
</server>
</servers>

其中,id就是Harbor仓库所在的服务器IP地址和端口号,username就是Harbor的用户名,password就是密码。这里我使用的是binghe账户。

八、配置Docker的config.json文件

注意:这里是个重点,网上很多文章中没有配置config.json文件,导致将Docker镜像push到Harbor仓库时抛出如下异常。

denied: requested access to the resource is denied

config.json文件在我电脑上所在的目录为C:\Users\binghe\.docker。也就是说,它所在的目录为C:\Users目录下的当前用户目录下的.docker目录下。如下所示。

我们打开config.json文件,将文件中的auths部分修改成如下所示。

"auths": {
"192.168.0.10:1180": {"username":"itence_harbor", "password":"Itence123"}
}

修改后的文件整体内容如下所示。

{
"auths": {
"192.168.0.10:1180": {"username":"itence_harbor", "password":"Itence123"}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/19.03.8 (windows)"
},
"credsStore": "desktop",
"stackOrchestrator": "swarm"
}

注意:如果不存在config.json文件,就在相应的目录下创建config.json文件,将上述配置写入config.json文件中。

九、运行测试

1.构建Docker镜像

在构建Docker镜像之前,我们先来查看下本地Docker中的镜像,如下所示。

可以看到,此时本地Docker中没有任何镜像。

接下来,在Spring Tool Site中,配置Maven Build,输入如下命令。

clean install -Dmaven.test.skip=true

如下所示。

接下来,右键Maven的pom.xml文件,点击Maven Build开始构建Docker镜像,构建成功后命令行会输出如下信息。

[INFO] Image will be built as 192.168.0.10:1180/test/binghe-starter:1.0.1
[INFO]
[INFO] Step 1/5 : FROM java:8
[INFO]
[INFO] Pulling from library/java
[INFO] Image 5040bd298390: Pulling fs layer
[INFO] Image fce5728aad85: Pulling fs layer
[INFO] Image 76610ec20bf5: Pulling fs layer
[INFO] Image 60170fec2151: Pulling fs layer
[INFO] Image e98f73de8f0d: Pulling fs layer
[INFO] Image 11f7af24ed9c: Pulling fs layer
[INFO] Image 49e2d6393f32: Pulling fs layer
[INFO] Image bb9cdec9c7f3: Pulling fs layer
[INFO] Image 60170fec2151: Waiting
[INFO] Image e98f73de8f0d: Waiting
[INFO] Image 11f7af24ed9c: Waiting
[INFO] Image 49e2d6393f32: Waiting
[INFO] Image bb9cdec9c7f3: Waiting
[INFO] Image fce5728aad85: Downloading
[INFO] Image 76610ec20bf5: Downloading
[INFO] Image 5040bd298390: Downloading
[INFO] Image fce5728aad85: Verifying Checksum
[INFO] Image fce5728aad85: Download complete
[INFO] Image 76610ec20bf5: Verifying Checksum
[INFO] Image 76610ec20bf5: Download complete
[INFO] Image 60170fec2151: Downloading
[INFO] Image 60170fec2151: Verifying Checksum
[INFO] Image 60170fec2151: Download complete
[INFO] Image e98f73de8f0d: Downloading
[INFO] Image e98f73de8f0d: Verifying Checksum
[INFO] Image e98f73de8f0d: Download complete
[INFO] Image 5040bd298390: Verifying Checksum
[INFO] Image 5040bd298390: Download complete
[INFO] Image 5040bd298390: Extracting
[INFO] Image 11f7af24ed9c: Downloading
[INFO] Image 11f7af24ed9c: Verifying Checksum
[INFO] Image 11f7af24ed9c: Download complete
[INFO] Image bb9cdec9c7f3: Downloading
[INFO] Image bb9cdec9c7f3: Verifying Checksum
[INFO] Image bb9cdec9c7f3: Download complete
[INFO] Image 49e2d6393f32: Downloading
[INFO] Image 5040bd298390: Pull complete
[INFO] Image fce5728aad85: Extracting
[INFO] Image fce5728aad85: Pull complete
[INFO] Image 76610ec20bf5: Extracting
[INFO] Image 76610ec20bf5: Pull complete
[INFO] Image 60170fec2151: Extracting
[INFO] Image 60170fec2151: Pull complete
[INFO] Image e98f73de8f0d: Extracting
[INFO] Image e98f73de8f0d: Pull complete
[INFO] Image 11f7af24ed9c: Extracting
[INFO] Image 11f7af24ed9c: Pull complete
[INFO] Image 49e2d6393f32: Verifying Checksum
[INFO] Image 49e2d6393f32: Download complete
[INFO] Image 49e2d6393f32: Extracting
[INFO] Image 49e2d6393f32: Pull complete
[INFO] Image bb9cdec9c7f3: Extracting
[INFO] Image bb9cdec9c7f3: Pull complete
[INFO] Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
[INFO] Status: Downloaded newer image for java:8
[INFO] ---> d23bdf5b1b1b
[INFO] Step 2/5 : MAINTAINER binghe
[INFO]
[INFO] ---> Running in 5e56a3994a51
[INFO] Removing intermediate container 5e56a3994a51
[INFO] ---> 88d9d9c903cf
[INFO] Step 3/5 : VOLUME /tmp
[INFO]
[INFO] ---> Running in 9a2a476fcb96
[INFO] Removing intermediate container 9a2a476fcb96
[INFO] ---> a4590174575b
[INFO] Step 4/5 : ADD target/*jar app.jar
[INFO]
[INFO] ---> e9de2bd74c98
[INFO] Step 5/5 : ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]
[INFO]
[INFO] ---> Running in 13219282bd45
[INFO] Removing intermediate container 13219282bd45
[INFO] ---> f6af061b2f2f
[INFO] [Warning] One or more build-args [JAR_FILE] were not consumed
[INFO] Successfully built f6af061b2f2f
[INFO] Successfully tagged 192.168.0.10:1180/test/binghe-starter:1.0.1
[INFO]
[INFO] Detected build of image with id f6af061b2f2f
[INFO] Building jar: D:\Workspaces\binghe-starter\target\binghe-starter-docker-info.jar
[INFO] Successfully built 192.168.0.10:1180/test/binghe-starter:1.0.1
[INFO]
[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ binghe-starter ---
[INFO] Installing D:\Workspaces\binghe-starter\target\binghe-starter.jar to D:\Maven_Repository\.m2\repository\com\binghe\binghe-starter\1.0.0-SNAPSHOT\binghe-starter-1.0.0-SNAPSHOT.jar
[INFO] Installing D:\Workspaces\binghe-starter\pom.xml to D:\Maven_Repository\.m2\repository\com\binghe\binghe-starter\1.0.0-SNAPSHOT\binghe-starter-1.0.0-SNAPSHOT.pom
[INFO] Installing D:\Workspaces\\binghe-starter\target\binghe-starter-docker-info.jar to D:\Maven_Repository\.m2\repository\com\binghe\binghe-starter\1.0.0-SNAPSHOT\binghe-starter-1.0.0-SNAPSHOT-docker-info.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:55 min
[INFO] Finished at: 2020-04-30T12:23:46+08:00
[INFO] ------------------------------------------------------------------------

接下来,再次查看下本地Docker中的镜像,如下所示。

C:\Users\binghe>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.0.10:1180/test/binghe-starter 1.0.1 f6af061b2f2f 4 minutes ago 720MB
java 8 d23bdf5b1b1b 3 years ago 643MB

接下来,我们可以输入如下命令运行Docker镜像。

docker run -d -p 8088:8088 f6af061b2f2f

接下来,输入命令docker ps 查看启动的容器,如下所示。

可以看到,使用Spring Tool Site中的Maven构建的Docker镜像运行成功。

2.将Docker镜像推送到Harbor仓库

在Spring Tool Site中将新增一项Maven Build,配置的命令如下所示。

dockerfile:push

接下来,右键pom.xml文件,选择Maven Build,并选择dockerfile:push选项,如下所示。

点击OK按钮,开始推送Docker镜像到Harbor仓库。

推送成功后,命令行会输出如下信息。

[INFO] --- dockerfile-maven-plugin:1.4.10:push (default-cli) @ binghe-starter ---
[INFO] The push refers to repository [192.168.0.10:1180/test/binghe-starter]
[INFO] Image b5a229480eb5: Preparing
[INFO] Image 35c20f26d188: Preparing
[INFO] Image c3fe59dd9556: Preparing
[INFO] Image 6ed1a81ba5b6: Preparing
[INFO] Image a3483ce177ce: Preparing
[INFO] Image ce6c8756685b: Preparing
[INFO] Image 30339f20ced0: Preparing
[INFO] Image 0eb22bfb707d: Preparing
[INFO] Image a2ae92ffcd29: Preparing
[INFO] Image ce6c8756685b: Waiting
[INFO] Image 30339f20ced0: Waiting
[INFO] Image 0eb22bfb707d: Waiting
[INFO] Image a2ae92ffcd29: Waiting
[INFO] Image a3483ce177ce: Layer already exists
[INFO] Image 6ed1a81ba5b6: Layer already exists
[INFO] Image 35c20f26d188: Layer already exists
[INFO] Image c3fe59dd9556: Layer already exists
[INFO] Image a2ae92ffcd29: Layer already exists
[INFO] Image 30339f20ced0: Layer already exists
[INFO] Image 0eb22bfb707d: Layer already exists
[INFO] Image ce6c8756685b: Layer already exists
[INFO] Image b5a229480eb5: Pushing
[INFO] Image b5a229480eb5: Pushed
[INFO] 1.0.1: digest: sha256:174a170f229dd5a76fdf5a6fe7001a0066578334ada03edae699f4fb9537c3c5 size: 2212
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 31.002 s
[INFO] Finished at: 2020-04-30T13:21:32+08:00
[INFO] ------------------------------------------------------------------------

此时,我们在Harbor的test项目下会发现多了一个镜像,如下所示。

十、特别说明

笔者是在Spring Tool Site中对SpringBoot项目构建Docker镜像,并将Docker镜像推送到Harbor仓库,这样方式同样适用于IDEA环境,笔者不再赘述。

如果是使用命令行构建并推送Docker镜像,需要在命令行登录Harbor,命令如下。

docker login 192.168.0.10:1180
Username:binghe
password:Binghe123

接下来,在命令行输入如下命令构建Docker镜像。

mvn clean install -Dmaven.test.skip=true

将Docker镜像推送到Harbor仓库。

mvn dockerfile:push

也可以使用docker命令将Docker镜像推送到Harbor仓库,如下所示。

docker push 192.168.0.10:1180/test/binghe-starter:1.0.1

使用docker命令将Docker镜像拉取到本地,如下所示。

docker pull 192.168.0.10:1180/test/binghe-starter:1.0.1

写在最后

如果觉得文章对你有点帮助,请微信搜索并关注「 冰河技术 」微信公众号,跟冰河学习各种编程技术。

【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)的更多相关文章

  1. mac和linux下使用Docker,部署SpringBoot项目到docker

    主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等. 我用的电脑是mac, ...

  2. 【docker】将Java jar文件生成镜像、上传镜像并生成镜像压缩文件

    概述 将Springboot的web服务打包成Jar包后,自动化脚本将jar打包成镜像.上传镜像.并生成镜像的压缩文件: Dockerfile FROM 10.254.9.21/library/ora ...

  3. maven打包springboot项目的插件配置概览

    jar包的术语背景: normal jar: 普通的jar,用于项目依赖引入,不能通过java -jar xx.jar执行,一般不包含其它依赖的jar包. fat jar: 也叫做uber jar,是 ...

  4. Jenkins 集成Maven打包SpringBoot项目并自动部署到Tomcat服务器

    提前条件: 1.在Jenkins服务器上安装Git.JDK和Maven 2.准备另一台服务器并安装Tomcat 3.Gitlab服务器 4.Gitlab仓库中上传SpringBoot项目代码 第一步, ...

  5. SpringBoot项目打成jar包后上传文件到服务器 目录与jar包同级问题

    看标题好像很简单的样子,但是针对使用jar包发布SpringBoot项目就不一样了.当你使用tomcat发布项目的时候,上传文件存放会变得非常简单,因为你可以随意操作项目路径下的资源.但是当你使用Sp ...

  6. Eclipse上传Git远程仓库,并且增加Maven Dependencies

    前言: 遇见问题了,公司一台电脑,家里一台电脑,当有项目在进行的时候,又不想把电脑背来背去的,就像一个人玩单机,这个时候GIT就可以帮你解决这个问题.当GIT准备就绪的时候,新的问题来了git下载下载 ...

  7. 使用maven 打包springboot项目步骤以及所遇到的问题

    1.首先必须确保java和maven是安装好的,并且环境变量配置正确 2.接着可以看一下我们项目中的pom.xml中的以下配置 packaging那里很关键,表示我们打包项目的类型,可以为jar 也可 ...

  8. Maven打包Web项目成war包——4

    1. 需要安装maven 的war插件支持 在pom.xml里面配置war插件       2. 运行命令: mvn clean package      3.部署到Tomcat下面发布,并访问!

  9. jenkins构建docker镜像上传到harbor并发布到kubernetes

    很早之前写过一篇jenkins集成docker的文章,使用的是CloudBees Docker Build and Publish plugin插件.这篇文章是直接使用shell脚本做的,主要是这次有 ...

随机推荐

  1. Nginx TP5环境配置

    Apache默认支持Pathinfo模式  Nginx不支持  需要手动配置  Apache默认支持Pathinfo模式  Nginx不支持  需要手动配置 server { #配置监听端口 list ...

  2. (数据科学学习手札128)在matplotlib中添加富文本的最佳方式

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 长久以来,在使用matplotlib进行绘 ...

  3. javascript 一些函数的实现 Function.prototype.bind, Array.prototype.map

    * Function.prototype.bind Function.prototype.bind = function() { var self = this, context = [].shift ...

  4. MYSQL分页 limit 太慢优化

    limit分页原理 当我们翻到最后几页时,查询的sql通常是:select * from table where column=xxx order by xxx limit 1000000,20.查询 ...

  5. P6563-[SBCOI2020]一直在你身旁【dp,单调队列】

    正题 题目链接:https://www.luogu.com.cn/problem/P6563 题目大意 长度为\(n\)的序列\(a_i\),现在有一个随机\([1,n]\)的整数,每次你可以花费\( ...

  6. P3175-[HAOI2015]按位或【min-max容斥,FWT】

    正题 题目链接:https://www.luogu.com.cn/problem/P3175 题目大意 开始有一个\(n\)位二进制数\(s=0\),每次有\(p_i\)概率选取数字\(i\)让\(s ...

  7. 解决报错:Unable to process Jar entry [org/springframework/jmx/export/annotation/*****]

    情况说明:从gitub上clone的maven项目,pox.xml配置中的依赖,自己的repository都有,所以正常update project ,正常clean,install,整个过程无报错 ...

  8. Java-多态(下)

    多态 一种类型的多种状态 还有一个小汽车的例子再理解下 汽车接口(相当于父类) package com.oop.demo10; public interface Car { String getNam ...

  9. js 改变this指向的三种方法 bind call apply

    先了解下bind call apply 的注意点 bind 需要手动调用 第一个参数 this 要指向的对象,后面是 散列的参数 call 不需要手动调用 第一个参数 this 要指向的对象,后面是 ...

  10. 题解 Yet Another Number Sequence

    题目传送门 Description 给出 \(n,k\) ,求出: \[\sum_{i=1}^{n} f_i·i^k \] 其中 \(f_i\) 表示斐波拉契第 \(i\) 项.\(n\le 10^{ ...