加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

谷歌助力,快速实现 Java 应用容器化

发布时间:2019-04-18 00:21:32 所属栏目:优化 来源:梁桂钊
导读:Google 在 2018 年下旬开源了一款新的 Java 工具 Jib,可以轻松地将 Java 应用程序容器化。通过 Jib,我们不需要编写 Dockerfile 或安装 Docker,通过集成到 Maven 或 Gradle 插件,就可以立即将 Java 应用程序容器化。 开源地址:https://github.com/Goog

此外,如果”登录失败,未授权”,需要通过 docker login 登录鉴权一下。此外,更好的做法是,你可以考虑在Maven 中放置凭据。

  1. <settings> 
  2.   ... 
  3.   <servers> 
  4.     ... 
  5.         <server> 
  6.           <id>registry.cn-hangzhou.aliyuncs.com</id> 
  7.           <username>你的阿里云账号</username> 
  8.           <password>你的阿里云密码</password> 
  9.         </server> 
  10.   </servers> 
  11. </settings> 

最后,执行完成后,我们可以在阿里云镜像仓库获取镜像。

大功告成,现在,我们来验证一把。我们通过 docker pull 拉取镜像,并运行。

  1. docker pull registry.cn-hangzhou.aliyuncs.com/lianggzone/jib-helloworld:v1 
  2. docker run --name jib-helloworld -it registry.cn-hangzhou.aliyuncs.com/lianggzone/jib-helloworld:v1 /bin/bash 

执行结果,如下所示。

2. 构建一个 SpringBoot 的可运行 Jar

我们来一个复杂一些的项目,构建一个 SpringBoot 的项目。现在,我们首先需要搭建一个工程,并创建一个启动类。

  1. @SpringBootApplication 
  2. public class Application { 
  3.     public static void main(String[] args) { 
  4.         SpringApplication.run(Application.class, args); 
  5.     } 

同时,需要一个 Web 的接口。

  1. @RestController 
  2. public class WebController { 
  3.     @RequestMapping("/blog") 
  4.     public String index() { 
  5.         return "http://blog.720ui.com"; 
  6.     } 

紧接着,我们再创建一个 pom.xml 文件。

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  3.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
  4.     <modelVersion>4.0.0</modelVersion> 
  5.  
  6.     <parent> 
  7.         <groupId>org.springframework.boot</groupId> 
  8.         <artifactId>spring-boot-starter-parent</artifactId> 
  9.         <version>2.1.2.RELEASE</version> 
  10.     </parent> 
  11.  
  12.     <groupId>com.lianggzone.sample.lib</groupId> 
  13.     <artifactId>springboot-samples</artifactId> 
  14.     <version>0.1</version> 
  15.     <packaging>jar</packaging> 
  16.     <name>springboot-samples</name> 
  17.  
  18.     <dependencies> 
  19.         <dependency> 
  20.             <groupId>org.springframework.boot</groupId> 
  21.             <artifactId>spring-boot-starter-web</artifactId> 
  22.         </dependency> 
  23.     </dependencies> 
  24.  
  25.     <properties> 
  26.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
  27.         <jib-maven-plugin.version>1.0.2</jib-maven-plugin.version> 
  28.         <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version> 
  29.     </properties> 
  30.  
  31.     <build> 
  32.         <plugins> 
  33.             <plugin> 
  34.                 <groupId>org.apache.maven.plugins</groupId> 
  35.                 <artifactId>maven-compiler-plugin</artifactId> 
  36.                 <version>${maven-compiler-plugin.version}</version> 
  37.                 <configuration> 
  38.                     <source>1.8</source> 
  39.                     <target>1.8</target> 
  40.                 </configuration> 
  41.             </plugin> 
  42.             <!-- Jib --> 
  43.             <plugin> 
  44.                 <groupId>com.google.cloud.tools</groupId> 
  45.                 <artifactId>jib-maven-plugin</artifactId> 
  46.                 <version>${jib-maven-plugin.version}</version> 
  47.                 <configuration> 
  48.                     <from> 
  49.                         <image>registry.cn-hangzhou.aliyuncs.com/lianggzone/oracle_java8</image> 
  50.                     </from> 
  51.                     <to> 
  52.                         <image>registry.cn-hangzhou.aliyuncs.com/lianggzone/jib-springboot:v1</image> 
  53.                     </to> 
  54.                     <container> 
  55.                         <jvmFlags> 
  56.                             <jvmFlag>-Xms512m</jvmFlag> 
  57.                             <jvmFlag>-Xdebug</jvmFlag> 
  58.                         </jvmFlags> 
  59.                     </container> 
  60.                 </configuration> 
  61.                 <executions> 
  62.                     <execution> 
  63.                         <phase>package</phase> 
  64.                         <goals> 
  65.                             <goal>build</goal> 
  66.                         </goals> 
  67.                     </execution> 
  68.                 </executions> 
  69.             </plugin> 
  70.         </plugins> 
  71.     </build> 
  72. </project> 

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读