当前位置: 代码网 > it编程>编程语言>Java > 如何通过idea把项目到私有仓库

如何通过idea把项目到私有仓库

2025年07月20日 Java 我要评论
前言该篇文章主要是harbor仓库创建和使用,如果需要看docker创建部署可以看第一篇文章。通过下面四篇文章可以快速的实现项目运维部署管理,大大减少项目维护的工作量一、修改maven配置我们本地如果

前言

该篇文章主要是harbor仓库创建和使用,如果需要看docker创建部署可以看第一篇文章。

通过下面四篇文章可以快速的实现项目运维部署管理,大大减少项目维护的工作量

一、修改maven配置

我们本地如果安装了docker环境则不用做处理,直接调用本地环境进行打包制作镜像发布;但很多时候我们本地不一定会安装docker的环境,这时候我们就需要通过配置远程连接服务器的方式进行打包制作镜像。

打开idea设置,进入settings > build, execution, deployment > build tools > maven > runner,配置环境变量:

  • docker_tls_verify:启用安全验证
  • docker_host:服务器docker的地址
  • docker_cert_path:远程的服务器docker的加密证书地址
docker_tls_verify=1;docker_host=https://10.37.129.2:2376;docker_cert_path=/library/zheng/docker/tls

二、配置pom.xml文件

下面配置由几部分组成:

  • <properties> 主要用来读取版本声明和harbor仓库域名地址
  • <plugins> 用来声明插件集合,主要包括了maven打包的插件以及docker构建插件

下面的配置是可以直接粘贴使用的,只需要修改自己的harbor仓库的账号密码,以及项目名称即可

    <properties>
        <!-- docker镜像的版本号  -->
        <image.tag.verion>1.0.1</image.tag.verion>
        <!-- 远程harbor仓库的域名地址 -->
        <docker.repostory>10.37.129.2:5000</docker.repostory>
        <!-- harbor为这个项目创建的目录   -->
        <harbor.project>ssyx</harbor.project>
    </properties>

    <build>
        <finalname>${project.artifactid}</finalname> <!--jar包名字-->
        <plugins>
            <!-- maven compiler plugin -->
            <plugin>
                <groupid>org.springframework.boot</groupid>
                <artifactid>spring-boot-maven-plugin</artifactid>
                <!-- 在此处添加 maven 编译插件的配置,如果需要的话 -->
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- docker 构建插件 -->
            <plugin>
                <groupid>com.spotify</groupid>
                <artifactid>dockerfile-maven-plugin</artifactid>
                <version>1.4.13</version>
                <executions>
                    <execution>
                        <id>default</id>
                        <!--    maven打包阶段就触发dockerfile-maven-plugin插件的以下动作   -->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                            <goal>tag</goal>
                            <goal>push</goal>
                        </goals>
                        <configuration>
                            <!-- docker镜像版本号,引用上面的 -->
                            <tag>${image.tag.verion}</tag>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <!-- 指定dockerfile所在目录 -->
                    <contextdirectory>${project.basedir}</contextdirectory>
                    <!-- 指定docker镜像名,格式必须这样写,  注意:这里${docker.repostory}仓库地址必须有,因为docker需要这个去连接你真实仓库地址,否则就会连接到官方的docker.io仓库了, 镜像名称格式是:harbor仓库域名/子仓库/镜像名称,版本号由上面的tag动作标注 -->
                    <repository>${docker.repostory}/${harbor.project}/${project.artifactid}</repository>
                    <!-- 连接远程harbor仓库的用户名和密码 -->
                    <username>admin</username>
                    <password>harbor12345</password>
                    <!-- 传递环境变量:jar_file给dockerfile -->
                    <buildargs>
                        <jar_file>${project.build.finalname}.jar</jar_file>
                    </buildargs>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

三、创建dockerfile配置文件

dockerfile作用主要是构建docker的镜像使用,下面的代码大致的作用就是先指定基础镜像,因为是java应用,所以指定jdk作为启动环境,然后在读取本地maven打好的jar包,构建好一个镜像,最后在通过entrypoint设置启动命令

需要注意from 引用的jdk镜像根据自己情况选择一个

# 设置java版本,如果需要生成图片(验证码等),则需要使用 openjdk:8-jdk 这个基础镜像、
# openjdk:8-jre #如果只需要运行时环境则可以使用这个会比jdk的更小
# openjdk:8-jdk
from openjdk:8-jdk-alpine
# 接收pom.xml文件传递的变量
arg jar_file
# 注意workdir指向的目录必须提前存在,否则后面复制文件的时候会失败,导致容器无法运行
run echo "jar_file is: ${jar_file}" && mkdir /app
workdir /app
copy target/${jar_file} ./app.jar
run echo "ls result" && ls -l /app

entrypoint ["java","-xms512m", "-xmx1g", "-dfile.encoding=utf-8", "-jar", "app.jar"]


四、执行

最后点击package即可执行打包jar并且把jar包转为镜像发布到仓库

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com