要把本地的项目生成镜像在发布到阿里云上去, 手动也可以完成, 但是现在google给我们开源了一个更简单的功能. jib. 很久以前已经发布了1.0版本, 这次我们适用最新的版本1.8.0. 其实很简单的
分为以下几个步骤:
1. 修改maven的配置
其实就是添加下面的plugin, 就可以了. 运行命令 mvn compile jib:build
这是我新建的一个springboot 项目, 里面就一个启动类(省略), 还有一个controller , 一个hello方法. 还有
package com.curefun.authority;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;/*** @author zhangke* @date 12月9日15:07:34*/@RestControllerpublic class HelloController {@GetMapping("hello")public String getHello(){return "success do it";}}
如果开始说没有授权的话, 是先在命令行执行
docker login --username=changhe626@ -
输入你设置的密码 , 记住了, 不是阿里云的登陆密码.
用的时候这个密码
记得把pom中的密码也更正过来.
build success之后就可以在 镜像版本 中看到了.
这就是我刚才上传的镜像了.
然后现在我在本地拉取阿里云上刚上传的镜像
docker pull -/onyx-cc/demo2:v1
哈哈哈, 不得不说, 国内的网络就是快. 快的不行.
docker images 查看本地的镜像
运行镜像:
docker run -it --rm -p8080:8080 镜像名字
现在你就可以试试, 服务是都正常了. 哈哈哈
查看完了, 该关掉docker 了, 毕竟电脑的内存已经用到了9G, 快爆照了.
docker ps 查看正在运行的容器
docker stop 名字, 关掉正在运行的容器, 好了.结束.
附件:
完整的pom文件
<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.curefun.authority</groupId><artifactId>authority-demo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>authority</name><description>权限系统</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Finchley.SR2</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>io.spring.platform</groupId><artifactId>platform-bom</artifactId><version>Cairo-SR5</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><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>1.8.0</version><configuration><!-- 拉取所需的基础镜像 - 这里用于运行springboot项目 --><from><!--base image--><!--<image>openjdk:alpine</image>--><image>openjdk:8-jre-alpine</image></from><!-- 最后生成的镜像配置 --><to><!--<image>-/m65536/jibtest</image>--><!--目标镜像registry地址,为了方便测试,你需要换成自己的地址,如果你的网络不好,可以选用国内加速器,比如阿里云的--><image>-/onyx-cc/demo2</image><!-- 镜像版本号 --><tags><tag>v1</tag></tags><auth><username>changhe@</username><password>123456</password></auth></to><!--由于我配置的私有镜像仓库没有设置https,所以设置--><allowInsecureRegistries>true</allowInsecureRegistries></configuration><executions><execution><phase>package</phase><goals><goal>build</goal></goals></execution></executions></plugin><!-- 运行maven命令的时候,让选择jdk 还是jre的时候,配置这个 --><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><fork>true</fork><executable>C:\Program Files\Java\jdk1.8.0_172\bin\javac</executable></configuration></plugin></plugins></build></project>
好了, 就这么结束了, 这份pom算是很简单的配置了, 如果需要更加复杂的配置, 就是平时写的dockerfile中的内容,
请出门左转去github上查看文档, 那个老详细了.
传送门是:/GoogleContainerTools/jib 不用谢.
这里放2篇我写时候, 帮助我的博客, 写的很好, 你们也可以参考一下. 挺好的
https://juejin.im/post/5b4e9c316fb9a04fa01d39d6
/article/19032
好了,写完了.如果您觉得写得不多,可以请作者喝一杯咖啡