文章目录
- 一、安装maven
- 二、配置mvn的pom.xml
- 1、http模式配置mvn
- 2、配置支持https模式mvn
- 三、构建镜像
- 四、镜像上传harbor仓库
一、安装maven
#部署maven
yum install maven -y
#修改mvn配置源为阿里源配置
【地址】https://developer.aliyun.com/mvn/guide
[root@k8s-master-01 ~]# vim /etc/maven/settings.xml
159行加入
-->
##################加入内容##
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
####################加入内容##
</mirrors>
<!-- profiles
二、配置mvn的pom.xml
1、http模式配置mvn
打开pom.xml中使用docker插件的注释:
修改前
[root@k8s-node-04 mall-swarm]# vim /opt/mall-swarm-master/pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<skipTests>true</skipTests>
<docker.host>unix:///var/run/docker.sock</docker.host>
修改后
#改为自己harbor地址;
[root@k8s-node-04 mall-swarm]# vim /opt/mall-swarm/pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<skipTests>true</skipTests>
<!--改为你自己的Docker服务远程访问地址-->
<docker.host>http://192.168.4.120:2375</docker.host>
<docker.maven.plugin.version>1.2.2</docker.maven.plugin.version>
<pagehelper-starter.version>1.3.0</pagehelper-starter.version>
#修改生成镜像名称
[root@k8s-node-04 mall-swarm]# vim /opt/mall-swarm-master/pom.xml
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.maven.plugin.version}</version>
<!--<executions>-->
<!--<execution>-->
<!--<id>build-image</id>-->
<!--<phase>package</phase>-->
<!--<goals>-->
<!--<goal>build</goal>-->
<!--</goals>-->
<!--</execution>-->
<!--</executions>-->
<configuration>
<imageName>192.168.4.119/mall/${project.artifactId}:${project.version}</imageName>
<dockerHost>${docker.host}</dockerHost>
<baseImage>java:8</baseImage>
<entryPoint>["java", "-jar", "-Dspring.profiles.active=prod","/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
2、配置支持https模式mvn
[root@localhost ~]# vim /opt/mall-swarm-master/pom.xml
#修改为仓库地址
<docker.host>https://192.168.4.120:2376</docker.host>
<docker.maven.plugin.version>1.2.2</docker.maven.plugin.version>
<java.version>1.8</java.version>
#总体修改内容
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.maven.plugin.version}</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<imageName>192.168.4.120/mall/${project.artifactId}:${project.version}</imageName>
<dockerHost>${docker.host}</dockerHost>
<baseImage>java:8</baseImage>
<entryPoint>["java", "-jar", "-Dspring.profiles.active=prod","/${project.build.finalName}.jar"]</entryPoint>
<dockerCertPath>/etc/docker/</dockerCertPath>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
修改内容:
#放开镜像打包模块
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
#修改为harbor仓库上传地址,并且在harbor创建仓库mall
<imageName>192.168.4.114/mall/${project.artifactId}:${pr
#加入证书路径
<dockerCertPath>/etc/docker/</dockerCertPath>
三、构建镜像
#部署Java环境,版本是8还是11取决pom.xml中Java环境是那个版本
yum install java-1.8.0-openjdk -y
#构建推送镜像
[root@k8s ~]# cd /opt/mall-swarm-master/
[root@localhost mall-swarm-master]# mvn clean package docker:build
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] mall-swarm ........................................ SUCCESS [1.262s]
[INFO] mall-common ....................................... SUCCESS [5.038s]
[INFO] mall-mbg .......................................... SUCCESS [9.342s]
[INFO] mall-demo ......................................... SUCCESS [31.809s]
[INFO] mall-admin ........................................ SUCCESS [26.244s]
[INFO] mall-search ....................................... SUCCESS [49.974s]
[INFO] mall-portal ....................................... SUCCESS [30.307s]
[INFO] mall-monitor ...................................... SUCCESS [27.323s]
[INFO] mall-gateway ...................................... SUCCESS [27.912s]
[INFO] mall-auth ......................................... SUCCESS [26.214s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3:56.526s
[INFO] Finished at: Wed May 04 23:03:38 EDT 2022
[INFO] Final Memory: 134M/1139M
[INFO] ------------------------------------------------------------------------
#生成镜像
[root@localhost mall-swarm-master]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.4.120/mall/mall-auth 1.0-SNAPSHOT 71b35cb71f54 2 minutes ago 699MB
192.168.4.120/mall/mall-gateway 1.0-SNAPSHOT d7690511acad 3 minutes ago 708MB
192.168.4.120/mall/mall-monitor 1.0-SNAPSHOT 7965343dba13 4 minutes ago 696MB
192.168.4.120/mall/mall-portal 1.0-SNAPSHOT dd9ef24bb777 4 minutes ago 719MB
192.168.4.120/mall/mall-search 1.0-SNAPSHOT e3422ea6e878 5 minutes ago 734MB
192.168.4.120/mall/mall-admin 1.0-SNAPSHOT 3cd2f6dc5d88 6 minutes ago 715MB
192.168.4.120/mall/mall-demo 1.0-SNAPSHOT fb3435585630 7 minutes ago 713MB
192.168.4.120/mall/mall-mbg 1.0-SNAPSHOT 48e4e344d3a2 8 minutes ago 644MB
192.168.4.120/mall/mall-common 1.0-SNAPSHOT a0f66a09fcbd 9 minutes ago 643MB
四、镜像上传harbor仓库
harbor创建对应仓库目录(微服务)mall
##打包成新的镜像名称
#dockker tag 192.168.4.120/mall/旧镜像名:版本 #192.168.4.120/mall/新镜像名:版本
#上传
#dockr push 192.168.4.120/mall/新镜像名:版本
docker push 192.168.4.120/mall/mall-auth:1.0-SNAPSHOT
docker push 192.168.4.120/mall/mall-gateway:1.0-SNAPSHOT
docker push 192.168.4.120/mall/mall-monitor:1.0-SNAPSHOT
docker push 192.168.4.120/mall/mall-portal:1.0-SNAPSHOT
docker push 192.168.4.120/mall/mall-search:1.0-SNAPSHOT
docker push 192.168.4.120/mall/mall-admin:1.0-SNAPSHOT
docker push 192.168.4.120/mall/mall-demo:1.0-SNAPSHOT
docker push 192.168.4.120/mall/mall-mbg:1.0-SNAPSHOT
docker push 192.168.4.120/mall/mall-common:1.0-SNAPSHOT