接上篇文章 对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>hup.xxx.com</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文件,和之前的一样
# 基础镜像使用Java
FROM java:8
# 作者
MAINTAINER janche
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
# 此处可以把具体的jar包名称写出来,我这里直接用*号代替了
ADD target/*.jar app.jar
ENTRYPOINT ["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@gmail.com</email>
</configuration>
</server>
4.默认你已经通过idea的docker插件连接好docker服务了哈,接下来就可以通过插件打包推送镜像了
docker:push实际上是包含docker:build,所以其实可以不用第三步的