首页 > 其他分享 >微服务Docker打包

微服务Docker打包

时间:2022-08-15 11:27:48浏览次数:57  
标签:服务 Java 构建 registry jib Docker docker 打包

微服务Docker打包

Jib 是 Google 开发的可以直接构建 Java 应用的 Docker 和 OCI 镜像的类库,以 Maven 和 Gradle插件形式提供。

Jib带来的是,它允许您通过简单地将插件添加到您选择的构建工具(Maven或Gradle)来创建容器,没有额外的文件,只需几行配置,它处理将应用程序打包到容器的所有步骤。

Jib是来自Google的开源Java容器,它允许Java开发人员使用他们所知道的Java工具构建容器,它不需要您编写Dockerfile或安装了docker,它直接集成到Maven和Gradle中

1.提供具有上传镜像权限的用户。

2.pom文件配置jib

<!-- 公共属性配置-->
<properties> 
	<!--harbor 仓库地址--> 
	<docker.registry.url>bgtestharbor.com</docker.registry.url> 
	<!--harbor 的项目名称--> 
	<docker.registry.name>library</docker.registry.name> 
	<!--harbor账号--> 
	<docker.registry.username>bgtest</docker.registry.username> 
	<!--harbor密码--> 
	<docker.registry.password>bgtestbgtest1</docker.registry.password> 
</properties>

<!-- 插件配置-->
<build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <version>2.8.0</version>
                <configuration>
                    <allowInsecureRegistries>true
                    </allowInsecureRegistries> 
                    <!--from节点用来设置镜像的基础镜像,相当于Docerkfile中的FROM关键字-->
                    <from>
                        <!--使用openjdk官方镜像,tag是:8-jdk-alpine,表示镜像的操作系统是 alpine,装好了jdk8-->
                        <image>openjdk:8-jdk-alpine</image>
                    </from>
                    <to>
                        <!--镜像名称和tag,使用了mvn内置变量${project.version},表示当前工 程的version-->
                        <image>
                            ${docker.registry.url}/${docker.registry.name}/${project.artifactId}:${p roject.version}
                        </image>
                        <tags>
                            <!--版本号-->
                            <tag>${project.version}</tag>
                        </tags> 
                        <!--harbor的认证信息-->
                        <auth>
                            <username>${docker.registry.username}</username>
                            <password>${docker.registry.password}</password>
                        </auth>
                    </to> 
                    <!--容器相关的属性-->
                    <container>
                        <jvmFlags> 
                            <!--一些启动参数-->
                            <jvmFlag>- Djava.security.edg=file:/dev/./urandom</jvmFlag>
                        </jvmFlags> 
                        <!--挂载volume的配置-->
                        <volumes>
                            <volume>/tmp</volume>
                            <volume>/logs</volume>
                        </volumes>
                        <ports> 
                            <!--暴漏端口号-->
                            <port>8080</port>
                        </ports> 
                        <!--微服务的启动类-->
                        <mainClass>com.heima.test.Application</mainClass>
                        <format>OCI</format> 
                        <!--使用该参数将镜像的创建时间与系统时间对其-->
                        <creationTime>USE_CURRENT_TIMESTAMP</creationTime>
                    </container>
                </configuration>
                <executions>
                    <!--执行打包配置-->
                    <execution>
                        <id>jib-maven-plugin</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin> 
            <!-- Docker maven plugin -->
        </plugins>
    </build>

3.执行构建

在项目根目录执行 mvn clean compile jib:build 即可构建完成自动推送。

4.harbor仓库查看

标签:服务,Java,构建,registry,jib,Docker,docker,打包
From: https://www.cnblogs.com/bgtong/p/16587617.html

相关文章

  • (防坑)Alphafold 非docker 安装指南
    本指南适用于Linux系统。Alphafold官方也强调尽量使用Linux系统!官方提供了docker版安装步骤。Alphafold简介:强大的蛋白质结构预测。开源地址:https://github.com......
  • Docker-Desktop在Ubuntu系统中的安装问题
    Docker-Desktop在Linux系统中的安装包为DEB包.deb安装包正常情况下无法直接通过UbuntuSoftware进行安装,需要安装相应的插件/支持。当然也可以通过命令行进行安装,如:su......
  • Docker命令速查
    Docker命令显示所有正在运行的docker容器dockerps显示所有docker容器dockerps-a运行容器dockerrun:运行一个容器并连接到它dockerrun-it:在后台运行容器......
  • redis 和docker等名词了解
    redisredis产生redis是MySQL数据库经常直接面对大量的读写访问,面对比较复杂的数据据操作,会导致数据库I/O反映缓慢或者奔溃;有人研究学习CPU从内寸直接读取数据,把MYSQL经......
  • 最多可省19%!阿里云第七代云服务器ECS中国大陆地域调价通知
    一直以来,阿里云通过自研技术不断提高产品性能,降低产品使用门槛。为了激活企业创新发展,阿里云宣布让利用户,针对中国大陆地域的第六代和第七代云服务器ECS进行调价,用户最高......
  • 服务端高性能网络IO编程模型简析
    服务端高性能网络IO编程模型简析一、客户端与服务器端多数网络应用可以分为客户端(client)和服务器端(server)模型,然后中间通过各种定义的协议来进行两端的通信。比如......
  • 【Linux】yum源安装nginx服务
    前言centos通过yum命令安装nginx服务,并开放监听端口、设置开机自启等1、配置yum源并进行安装如有其他版本需求的,可以跳转官网nginx:Linuxpackages,选取适合自......
  • 校正centos服务器时间
    1、安装NTPsudoyum-yinstallntp12、使用ntpdate测试NTPntpdatepool.ntp.org13、查看服务器时间date14、启动ntpddaemon,持续校准时间systemctlstartntpd15、......
  • 服务器无法登录之迷——login界面无限循环
         本周遇到了一个很奇葩的问题,客户的一台服务器无论如何都无法登录到机器系统里面去。可以肯定的是输入的登录密码是完全正确的,但是输入密码后,总在login登录界面无......
  • Red Hat修复Samba服务中的Badlock缺陷
    RedHat近日公布了其产品在与WindowsAD进行互动及Samba服务的协议缺陷,此次被发现的漏洞将影响RedHatIdentityManagement、RedHatGlusterStorage及RHEL的Samba服务器......