接上篇文章 对idea的docker配置,默认你已经可以通过Dockerfile发布镜像了。
通过Dockerfile发布的镜像版本都是latest,有木有什么办法可以修改呢:
第一种:
通过命令修改:
docker tag ImgId/OldTag newTag
eg:
docker tag docker-demo docker-demo-2.0
第二种就是通过下面docker-maven插件的方式打包了
idea docker打包插件部署harbor私服
1.配置项目的pom.xml文件
<properties><!-- docker harbor的配置,下面也可以使用ip,默认端口看号是80 --><docker.repository></docker.repository><!-- harbor上的项目名称 --><docker.registry.name>test</docker.registry.name></properties><build><!-- 构建的jar包名称 --><finalName>${project.artifactId}</finalName><plugins><!-- 一个plugin构建springboot可执行包 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin><plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.0.0</version><configuration><!-- maven settings.xml 文件配置的server-id,配置server就可以直接推送到harbor repository仓库了 --><serverId>docker-hub</serverId><registryUrl>http://${docker.repository}</registryUrl><!-- 这是docker的服务地址,必须配置dockerHost标签(除非配置系统环境变量DOCKER_HOST)--><dockerHost>http://192.168.0.21:2375</dockerHost><imageName>${docker.repository}/${docker.registry.name}/${project.artifactId}:${project.version}</imageName><!-- 指定 Dockerfile 路径,此路径根据自己的文件路径调试,他正确才会有打包镜像日志输出,否则会卡住--><dockerDirectory>./</dockerDirectory><image>${docker.repository}/${docker.registry.name}/${project.artifactId}:${project.version}</image><newName>${docker.repository}/${docker.registry.name}/${project.artifactId}:${project.version}</newName><!-- jar包位置--><resources><resource><targetPath>target/</targetPath><!--jar 包所在的路径 此处配置的 即对应 target 目录--><directory>${project.build.directory}</directory><!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 --><include>${project.build.finalName}.jar</include></resource></resources></configuration></plugin></plugins></build>
2.编写Dockerfile文件,和之前的一样
# 基础镜像使用JavaFROM java:8# 作者MAINTAINER janche# VOLUME 指定了临时文件目录为/tmp。# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmpVOLUME /tmp# 将jar包添加到容器中并更名为app.jar# 此处可以把具体的jar包名称写出来,我这里直接用*号代替了ADD target/*.jar app.jarENTRYPOINT ["java","-jar","/app.jar"]# 指定容器需要映射到主机的端口EXPOSE 9090
application.properties文件:里面就配置了一个端口,即Dockerfile中暴露的容器对外的端口
server.port=9090
3.在maven的settings.xml中国配置harbor私服的用户信息
<server><!-- 这里要和pom.xml中的serverId标签内容保持一致 --><id>docker-hub</id><username>username</username><password>xxxxx</password><configuration><email>janche@</email></configuration></server>
4.默认你已经通过idea的docker插件连接好docker服务了哈,接下来就可以通过插件打包推送镜像了
docker:push实际上是包含docker:build,所以其实可以不用第三步的