• 使用docker-maven-plugin打包


    今天在部署的时候遇到点问题,总结一下,docker部署的步骤,如果对您有帮助,关注一下,就是对我最大的肯定, 谢谢!

    微服务部署有两种方法:
    (1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚
    拟机并拷贝至JDK容器。
    (2)通过Maven插件自动部署。
    对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们这里学习如何自动部署,这也是企业实际开发中经常使用的方法。
    docker-maven-plugin的Github坐标:docker-maven-plugin
    Maven插件自动部署步骤:

    (1)修改宿主机的docker配置,让其可以远程访问
    默认,我们的linux的 docker ,IDEA 是不可以访问的,所以需要修改下配置,让我们的IDEA 可以访问

    vi /lib/systemd/system/docker.service
    

    在 其中的ExecStart=后添加配置

    -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
    

    修改后如下内容:
    在这里插入图片描述
    (2)刷新配置,重启服务

    systemctl daemon‐reload  # 刷新服务
    systemctl restart docker # 重新启动docker
    docker start registry  # 启动registry
    

    (3) 在项目中增加插件配置

    
        <build>
            <finalName>app</finalName>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <!-- docker的maven插件,官网:
                https://github.com/spotify/docker-maven-plugin -->
                <plugin>
                    <groupId>com.spotify</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <imageName>192.168.100.128:5000/${project.artifactId}:${project.version}</imageName>
                        <baseImage>jdk1.8</baseImage>
                        <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                        <resources>
                            <resource>
                                <targetPath>/</targetPath>
                                <directory>${project.build.directory}</directory>
                                <include>${project.build.finalName}.jar</include>
                            </resource>
                        </resources>
                        <dockerHost>http://192.168.100.128:2375</dockerHost>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    

    以上配置会自动生成Dockerfile

    用法

    通过运行此命令来使用上述配置构建映像。

    mvn clean package docker:build
    

    打包和上传镜像

    mvn clean package docker:build -DpushImage
    

    要仅将特定标记推送到注册表,指定请pushImageTag标记。

    mvn clean package docker:build -DpushImageTag
    

    执行打包和上传镜像后,会有如下输出,代码正在上传
    在这里插入图片描述

    浏览器访问 http://192.168.184.135:5000/v2/_catalog输出

    {"repositories":["打包的项目名称"]}
    

    进入宿主机 , 查看镜像,就会显示,上传的镜像了

    docker images
    
  • 相关阅读:
    org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback.....Parameter index out of range (1 > number of parameters, which is 0).;
    启动tomcat报错 Could not reserve enough space for object heap的解决办法
    JavaScript里面三个等号和两个等号有什么区别?
    powerdesigner 绘制表关系和导出sql
    ORA-00911: 无效字符
    java heep space错误解决办法
    jsp下拉选框赋值(在js里进行)
    js image转canvas不显示
    调试web worker (动态生成的worker)
    threeJS射线拾取机制及案例
  • 原文地址:https://www.cnblogs.com/spiritmark/p/13009977.html
Copyright © 2020-2023  润新知