• docker在java项目中打成tar包


    docker在java项目中打成tar包

    1、首先安装一个docker desktop

    2、mvn install项目后,建立一个自己的dockerfile

    这里我以我的代码举例,from +镜像,这里你也能打包好一个镜像的基础上,from+打好的镜像,这里我们用openjdk默认的镜像。

    COPY ./target/*.jar app.jar: 这个命令将当前目录下./target/中的所有以.jar结尾的文件复制到Docker容器中,并重命名为app.jar。这通常用于将应用程序的可执行JAR文件复制到容器内,以便在容器中运行该应用程序。

    EXPOSE 8081 17504 8096: 这个命令指示Docker容器打开指定的网络端口,以允许外部的请求进入容器。在这种情况下,容器将打开三个端口:8081、17504和8096。这些端口号可以根据你的应用程序的需要进行配置,以便允许外部访问容器中的应用程序或服务。
    在这里插入图片描述

    
    FROM openjdk:11
    COPY ./target/*.jar app.jar
    EXPOSE 8081 17504 8096
    ENTRYPOINT [ "java", "-server", "-jar", "/app.jar",\
                "--video.resource.dir=${WEB_RESOURCE:/home/op/Record}",\
                "--video.master.recordpath=${RECORD_RESOURCE:/home/op/Record}",\
                "--video.cplusplus.CplusplusRecordStatusPath=${RECORD_STATUS_RESOURCE:http://localhost:8088/api/master/CplusplusRecordStatusPath}",\
                "--root.spaceleft.percent=${ROOT_SPACELEFT_PERCENT:6}",\
                "--video.cplusplus.CplusplusSnapShotPath=${SNAPSHOT_RESOURCE:http://localhost:8088/api/master/CplusplusRecordStatusPath}",\
                "--video.cplusplus.startCplusplusRecordPath=${START_RECORD_RESOURCE:http://localhost:8088/api/master/CplusplusRecordStatusPath}",\
                "--video.cplusplus.stopCplusplusRecordPath=${STOP_RECORD_RESOURCE:http://localhost:8088/api/master/CplusplusRecordStatusPath}",\
                "--video.cplusplus.path=${CPLUSPLUS_RESOURCE:http://player-service:8080/video}",\
                "--video.cplusplus.SgtNmrgPath=${CPLUSPLUS_SGTNMRGPATH:http://video-sgtNmrg-service:8080/sgtNmrg}",\
                "--video.cplusplus.SgtNmrgTaskStatus=${CPLUSPLUS_SGTNMRGPATHSTATUSPATH:http://video-sgtNmrg-service:8080/taskStatus}",\
                "--video.cplusplus.cplusplusSgtNmrgTaskCancel=${CPLUSPLUS_TASKCANCELPATH:http://video-sgtNmrg-service:8080/cancelTask}",\
                "--video.cplusplus.cplusplusExportCancel=${CPLUSPLUS_EXPORTCANCELPATH:http://export-folder-service:8080/cancelTask}",\
                "--video.cplusplus.exportpath=${CPLUSPLUS_EXPORTPATH:http://export-folder-service:8080/export}",\
                "--server.servlet.session.timeout=${SERVLET_SESSION:3600}",\
                "--working.sendDirectionMessageToClient=${SEND_DIRECTION_INTERVAL:30000}",\
                "--directionAndRecordStatus.interval=${DIRECTION_RECORD_INTERVAL:1000}",\
                "--video.cplusplus.statuspath=${CPLUSPLUS_STATUSPATH:http://export-folder-service:8080/progress-value}",\
                "--init.wait=${INIT_WAIT:30}"]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    3、如何生成镜像

    删除原先的镜像

    docker rmi -f web:dev
    
    • 1

    建立镜像

    docker build -t web:dev .
    
    • 1

    转化为tar包

    docker save -o service-web.tar web:dev
    
    • 1

    后续上传到服务器,服务器上安装docker后,任意位置

    docker load -i service-web.tar
    
    • 1

    观察镜像状态

    docker ps
    
    • 1

    注意:
    application.yml与这个docker打包无关

    server:
      port: 8081
      servlet:
        context-path: /api/pad
        session:
          timeout: 3600
    springdoc:
      api-docs:
        enabled: true
        path: /api-docs
      swagger-ui:
        path: /swagger-ui.html
    management:
      metrics:
        tags:
          app: myapp
      export:
        prometheus:
          enabled: true
    netty:
      # 重新连接时间间隔(单位:秒)
      interval: 4
      # 处理线程数
      thread-number: 1
    
    endpoint:
      # Web指令生成服务
      web:
        port: 17504
    init:
      # 初始化等待时间(单位:秒)
      wait: 30
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
  • 相关阅读:
    网络威胁防御+资产测绘系统-Golang开发
    Ubuntu20.04下载opencv3.4--未完善
    PHP学习笔记(一往无前)
    流媒体分析之rtmp 协议封装
    <a>标签的download属性部分浏览器无法自动识别文件后缀
    openvpn部署
    阻止移动端 touchmove 与 scroll 事件冲突
    WPF 附加属性+控件模板,完成自定义控件。建议观看HandyControl源码
    java毕业设计网上商城购物系统mybatis+源码+调试部署+系统+数据库+lw
    Virtio-user使用简介
  • 原文地址:https://blog.csdn.net/weixin_43914278/article/details/134036143