美文网首页
Jib插件 SpringBoot应用 Docker部署的简单应用

Jib插件 SpringBoot应用 Docker部署的简单应用

作者: KICHUN | 来源:发表于2020-01-20 15:41 被阅读0次

    1. Jib插件简介

    官网翻译

    Jib无需Docker守护程序即可为Java应用程序构建优化的Docker和OCI映像-无需深入掌握Docker最佳实践。它可以作为Maven和Gradle的插件以及Java库使用。

    我的翻译

    jib是一款谷歌开源的依赖管理插件,专门为java应用构建Docker镜像。他屏蔽了复杂的Docker配置,无需编写Dockerfile。例如在Maven环境中只需要在POM文件中简单配置,即可实现服务镜像的构建及PUSH镜像到Docker私服仓库中。

    这里是这个插件的GITHUB地址


    2. 使用环境

    • Jib插件依赖Docker环境及Docker仓库
    • Maven
    • SpringBoot 打包Jar应用
      说明:本例中开发环境为 Win10+windows版Docker+官方Docker Registry仓库+Idea+Maven+SpringBoot

    3. 加入Jib插件

    在项目pom文件中加入如下配置

    <build>
            <finalName>tba-gateway</finalName>
            <plugins>
                <plugin>
                    <groupId>com.google.cloud.tools</groupId>
                    <artifactId>jib-maven-plugin</artifactId>
                    <version>1.8.0</version>
                    <configuration>
                        <from>
                            <image>java:8</image>
                        </from>
                        <to>
                            <!--要推送的私服镜像地址-->
                            <image>127.0.0.1:5000/wangqichang/${build.finalName}</image>
                            <tags>
                                <!--镜像的tag-->
                                <tag>${parent.version}</tag>
                            </tags>
                            <!--配置了密码的私服需要在此配置认证,官网建议放在Maven的Setting中配置-->
                            <!--<auth>-->
                                <!--<username>wangqichang</username>-->
                                <!--<password>仓库密码</password>-->
                            <!--</auth>-->
                        </to>
                        <!--docker仓库没有启用https的需要配置忽略安全-->
                        <allowInsecureRegistries>true</allowInsecureRegistries>
                        <container>
                            <!--服务的启动类-->
                            <mainClass>com.xxx.xxx.xxx.GatewayApplication</mainClass>
                            <!--使用当前时间-->
                            <useCurrentTimestamp>true</useCurrentTimestamp>
                        </container>
    
                    </configuration>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>build</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    

    4. 打包及镜像推送

    直接使用Maven Package打包命令,如图,成功后将自动推送到仓库中


    image.png

    我这里使用的是官方registry,使用命令curl -XGET 仓库IP:端口/v2/_catalog可以看到镜像wangqichang/tba-gateway被成功推送到仓库

    image.png

    注意事项:

    • 请使用国内代理镜像,否则拉取基础镜像时可能会超时失败
    • 使用有认证功能的私有仓库时需要配置认证,否则无法PUSH

    5. 拉取镜像,启动容器

    使用docker pull 私服IP:端口/镜像名称:版本

    image.png

    使用docker images可以查看镜像

    使用docker run命令启动容器,完整命令如下:
    docker run -t -e "spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848" -e "spring.cloud.nacos.discovery.namespace=8694e5b4-2501-48fa-acde-c76d3d77fc44" -p 9056:9055 localhost:5000/wangqichang/tba-gateway
    解释如下
    docker run -t -e "启动参数key=参数value" -e -p 宿主机端口:容器端口 本地镜像名称|ID
    注意:

    • docker run命令可以向java命令传递参数,针对不同的基础镜像有不同的传参方式
      成功启动应用,日志如下


      image.png

    相关文章

      网友评论

          本文标题:Jib插件 SpringBoot应用 Docker部署的简单应用

          本文链接:https://www.haomeiwen.com/subject/ksujzctx.html