一、后端项目
SpringBoot项目
1.在pom.xml文件中的build标签下的plugin标签下引入docker插件
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>插件版本</version>
<configuration>
<!-- 和maven setting中的配置的serverid 一致,根据这个去找harbor地址 -->
<serverId>docker-harbor</serverId>
<registryUrl>http://${docker.repostory}</registryUrl>
<!--必须配置dockerHost标签(除非配置系统环境变量DOCKER_HOST)-->
<dockerHost>http://${docker.host}</dockerHost>
<!-- imageName 必须这么设置,可以改tag,不然没push 到harbor -->
<imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}:${image.tag.verion}
</imageName>
<forceTags>true</forceTags>
<!-- 指定 Dockerfile 路径-->
<dockerDirectory>${basedir}</dockerDirectory>
<!-- jar包位置-->
<resources>
<resource>
<targetPath>/</targetPath>
<!-- target目录下-->
<directory>${project.build.directory}</directory>
<!--通过jar包名找到jar包-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
2.在pom.xml文件中的properties标签下配置doker插件的具体属性配置
<!--docker镜像打包-->
<dockerfile-maven-plugin-version>插件版本</dockerfile-maven-plugin-version>
<!--docker插件-->
<image.name>镜像名</image.name>
<image.tag.verion>镜像标签版本</image.tag.verion>
<!-- Harbor对应的ip和port -->
<docker.repostory>harbor仓库地址</docker.repostory>
<!--项目名,需要和Harbor中的项目名称保持一致 -->
<docker.registry.name>项目名</docker.registry.name>
<docker.host>docker主机及端口号</docker.host>
3.创建并配置DockerFile
3.插件引入及配置完成后,依次进行清除clean、打包package、构建build、推送操作push
SpringCloud项目
SpringCloud项目中的使用与SpringBoot项目一样,但有几点需要注意的地方
1.docker插件和docker插件属性配置的放置位置
由于微服务中的子项目在服务器上是单独放置的,比如snow项目下的子项目snow-web和snow-restapi在服务器上并不是snow这一个服务,而是snow-web和snow-restapi两个服务,所以docker插件和docker插件属性配置的放置应该在子项目的pom.xml文件里。也就是说应该放在snow-web的pom.xml文件以及snow-restapi的pom.xml文件里,而不是snow项目的pom.xml文件里。放置完成后刷新maven,右侧的maven管理里的子项目下的Plugins一栏下就会出现docker 但其实snow项目下也是可以放置docker插件和docker插件属性配置的,但需要修改引入插件那一步配置dockerDirectory的路径和targetPath的路径,使jar包和Dockerfile都置于子项目下正确的位置
2.DockerFile文件
应注意DockerFile文件中的Harbor地址、环境、以及jar包位置
二、前端项目
一般来说前端项目没有pom.xml文件,所以需要我们用idea打开然后创建pom.xml文件
1.创建pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>版本</modelVersion>
<groupId>坐标</groupId>
<artifactId>包名</artifactId>
<version>版本</version>
<name>名称</name>
<url>地址</url>
<properties>
<!--docker镜像打包-->
<dockerfile-maven-plugin-version>插件版本</dockerfile-maven-plugin-version>
<!--docker插件-->
<image.name>镜像名</image.name>
<image.tag.verion>镜像标签版本</image.tag.verion>
<!-- Harbor对应的ip和port -->
<docker.repostory>harbor仓库地址</docker.repostory>
<!--项目名,需要和Harbor中的项目名称保持一致 -->
<docker.registry.name>项目名</docker.registry.name>
<docker.host>docker主机及端口号</docker.host>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>插件版本</version>
<configuration>
<!-- 和maven setting中的配置的serverid 一致,根据这个去找harbor地址 -->
<serverId>docker-harbor</serverId>
<registryUrl>http://${docker.repostory}</registryUrl>
<!--必须配置dockerHost标签(除非配置系统环境变量DOCKER_HOST)-->
<dockerHost>http://${docker.host}</dockerHost>
<!-- imageName 必须这么设置,可以改tag,不然没push 到harbor --> <imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}:${image.tag.verion}</imageName>
<forceTags>true</forceTags>
<!-- 指定 Dockerfile 路径-->
<dockerDirectory>${basedir}</dockerDirectory>
<!-- jar包位置-->
<resources>
<resource>
<targetPath>/</targetPath>
<!-- target目录下-->
<directory>${project.build.directory}</directory>
<!--通过jar包名找到jar包-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
</project>
2.创建DockerFile文件并配置
这里有几点需要说明:前端项目用的是nginx,后端项目用的是openjdk;打包文件复制到默认路径上;nginx配置如需要请复制到nginx默认路径上;一般前端暴露的端口默认为80
3.插件引入及配置完成后,依次进行清除clean、打包package、构建build、推送操作push
注意:在本地构建和推送镜像的时候,要注意服务器是否开启公网访问,如果没有记得连vpn哦!