springboot项目打镜像推到私有仓库

1. 背景

springboot项目打镜像发布到仓库的大流程有两种:

第一种:本地开发环境 ---> 服务器 ---->  私有镜像仓库

1.1 流程:在本地开发环境打镜像包,并通过docker的2375端口将镜像推到服务器上,最后服务器再推到私有仓库。

1.2 缺点:服务器暴露2375端口是非常危险的,别人甚至可以直接操控你的宿主机,除非你对端口使用ca证书,不过这种方式太过繁琐,参考:https://docs.docker.com/engine/security/protect-access/

1.3 适用场景:如果服务器处于私网,那就是可行的

第二种:本地开发环境 ---> 私有镜像仓库 --->服务器

2.1 在本地开发环境打镜像包直接发布到私有仓库,然后服务器手动拉取

2.2 缺点:需要服务器手动拉取仓库的镜像,但是如果项目是由docker-compose部署的,那么这也不是什么问题,除非你使用的镜像tag是lastest,否则不管怎样,你都需要去修改下docker-compose.yml的镜像版本

2. 使用

第一种. 使用2375端口推镜像

有两种方式,第一种是使用maven插件,第二种是使用idea插件,(maven插件的方式就是在pom文件的plugin里面去配置服务器的信息,idea插件则是通过idea的setting设置去配置)。

但是无论哪种方式,都是需要有docker环境的,要么是本地安装,要么是连接服务器的docker

步骤:

2.1 打开服务器2375端口:

 1.1 进入阿里云ecs服务器,进入安全组,添加安全组2375

 1.2 打开服务器的防火墙2375端口

 1.3 修改docker的配置文件:https://www.cnblogs.com/panchanggui/p/12133928.html

2.2 使用插件进行配置

由于个人不是很喜欢使用2375端口的方式推镜像,所以配置都是一笔带过,有两种,要么maven插件,要么idea插件

2.2.1 使用maven插件进行配置

网上教程很多,大多都是使用com.spotify,可参考:https://blog.csdn.net/xxkalychen/article/details/97174448

2.2.2 使用idea插件进行配置

使用Alibaba Cloud Toolkit插件:参考:

https://help.aliyun.com/document_detail/162966.html

https://blog.csdn.net/u013008898/article/details/113811472

第二种.直接打镜像发布到私有仓库(强烈推荐)

第一种方法是需要本地或服务器拥有docker环境才能使用的,而这种方法不需要有docker服务,可以直接推到私有仓库。

但缺点也是有的:需要暴露阿里云的账号密码,不过可以通过阿里云的RAM子账号解决这个问题:https://help.aliyun.com/document_detail/144229.html

pom文件的配置:

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
		<plugin>
			<groupId>com.google.cloud.tools</groupId>
			<artifactId>jib-maven-plugin</artifactId>
			<version>2.4.0</version>
			<configuration>
				<from>
					<!--表示从docker hub获取java镜像作为基础构建镜像-->
					<image>java</image>
				</from>
				<to>
					<!-- 阿里云前缀/命名空间/仓库名,可直接在阿里云的仓库复制地址 -->
					<image>registry.cn-shenzhen.aliyuncs.com/xxx/xxx</image>
					<auth>
						<!--阿里云上的账号和密码-->
						<username>xxxx</username>
						<password>xxxx</password>
					</auth>
					<tags>
						<tag>${project.version}</tag>
					</tags>
				</to>
				<!--不使用https-->
				<allowInsecureRegistries>false</allowInsecureRegistries>
			</configuration>
			<!--使用maven的生命周期,即在package时会自动进行打镜像-->
			<executions>
				<execution>
					<phase>package</phase>
					<goals>
						<goal>build</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巴中第一皇子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值