项目存放在git上,在jenkins使用docker打包并推送到Ubuntu上运行

项目添加dockerfile

  • 在需要打包的工程的根目录添加Dockerfile文件,文件内容:

    # 设置JAVA版本
    FROM openjdk:8
    # 指定存储卷,任何向/tmp写入的信息都不会记录到容器存储层
    VOLUME /tmp# 拷贝运行JAR包
    ARG JAR_FILE
    COPY ${JAR_FILE} app.jar# 入口点。执行JAVA运行命令
    ENV JAVA_OPTS="
    -server
    -Xms256m
    -Xmx512m
    -XX:MetaspaceSize=256m
    -XX:MaxMetaspaceSize=512m"
    ENTRYPOINT java ${JAVA_OPTS} -jar /app.jar

  • 在pom上配置,添加打包插件,buildArgs中的JAR_FILE与Dockerfile文件中的${JAR_FILE}对应
    <plugin>
         <groupId>com.spotify</groupId>
         <artifactId>dockerfile-maven-plugin</artifactId>
         <version>1.3.6</version>
         <configuration>
             <repository>${project.artifactId}</repository>
             <buildArgs>
                 <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
             </buildArgs>
         </configuration>
     </plugin>
    

将项目存放到git上

  • 在gitee上新建一个仓库
  • 本地项目根目录新建一个.gitignore文件,添加忽略的文件

    .idea
    target
    *.iml

  • 根项目节点创建本地代码仓库,并将工程文件
    在这里插入图片描述
  • 将文件添加到本地仓库中,并commit。
    在这里插入图片描述
  • 添加远程仓库地址,输入账号密码(之前存过就不提示了)并push到远程仓库。
    在这里插入图片描述

在jenkins上新建一个任务

  • 配置全局变量
    系统管理-》全局工具配置,配置好JDK、Git、Maven等

  • 输入任务名称,选择构建一个自由风格的软件项目(Freestyle project)
    在这里插入图片描述
    任务名称为jar包名称(要一摸一样,且不能有大写字母)

  • 配置JDK

  • 源码管理

    • 选择"GIT"
    • 填写Repository URL
    • Credentials 认证信息
    • Branches to build 打包分支
  • 设置Build Steps

    • 选择maven版本
    • 设置目标
      • 多子工程并且引用了其他工程,先打包应用到的项目,否者跳过
        在这里插入图片描述
      • 使用dockerfile打包,-f 的路径是指定要打包的工程的pom.xml
        在这里插入图片描述
  • docker部署。
    在这里插入图片描述

构建失败原因

  • 镜像存在大写导致构建失败修改任务名称未小写且
    在这里插入图片描述
  • docker镜像名称要求与jar包的名字一致,否者在启动时,找不到对应的镜像

    Unable to find image ‘lpsaserver_distrubuted:latest’ locally
    docker: Error response from daemon: pull access denied for lpsaserver_distrubuted, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied.

  • dockerfile 第一行,否则报如下错误

    st: 400, body: {“message”:“no build stage in current context”}: HTTP 400 Bad Request -> [1m[Help 1][m

  • unmappable character for encoding ASCII可能会导致应用服务乱码,在对应项目pom的properties 添加<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    LockData.java:[13,15] unmappable character for encoding ASCII

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/535690.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

08 - 镜像管理之:镜像仓库harbor介绍

本文参考&#xff1a;原文1 1 Harbor仓库介绍 Docker容器应用的开发和运行离不开可靠的镜像管理&#xff0c;虽然Docker官方也提供了公共的镜像仓库&#xff0c;但是从安全和效率等方面考虑&#xff0c;部署我们私有环境内的Registry 也是非常必要的。 之前介绍了Docker私有仓…

适用于W波段GaAs开关设计的可扩展p-i-n二极管建模与参数提取技术

来源&#xff1a;Scalable p-i-n Diode Modeling and Parameter Extraction for Use in the Design of W-Band GaAs Switch&#xff08;TIE 21年&#xff09; 摘要 本文介绍了一种针对W波段开关设计的基于毫米波GaAs的p-i-n二极管的可扩展建模与参数提取方法。采用基于晶圆上…

创新指南|战略衡量的增长组织:用人工智能增强关键绩效指标(KPI)

传统的关键绩效指标 (KPI)越来越无法提供领导者取得成功所需的信息和见解。他们在跟踪进展、协调人员和流程、确定资源优先级以及推进问责制方面存在不足。本文是 2024 年第一份麻省理工学院 SMR - BCG 人工智能和商业战略全球高管学习和研究项目的调查结果——人工智能和业务战…

鸿蒙开发学习笔记第一篇--TypeScript基础语法

目录 前言 一、ArkTS 二、基础语法 1.基础类型 1.布尔值 2.数字 3.字符串 4.数组 5.元组 6.枚举 7.unkown 8.void 9.null和undefined 10.联合类型 2.条件语句 1.if语句 1.最简单的if语句 2.if...else语句 3.if...else if....else 语句 2.switch语句 5.函数…

上位机图像处理和嵌入式模块部署(qmacvisual动态插件卸载)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们讨论过&#xff0c;qmacvisual虽然提供了很多的功能&#xff0c;包括的种类很多&#xff0c;但是总有一些功能是客户希望定制的。这些都是…

抖音小店无货源爆发期过了吗?现在还能做吗?

大家好&#xff0c;我是电商花花。 抖音小店爆发期过了吗&#xff1f; 我并不觉得&#xff0c;反而抖音小店的流量越来越大了&#xff0c;今年抖音小店日活跃用户已经突破到了9亿&#xff0c;有更大的市场和流量了&#xff0c;且现在做店越来越多了&#xff0c;再加上平台的支…

django 模板js文件为什么最后引入

<!-- 引入Bootstrap JS --> <script src"https://cdn.jsdelivr.net/npm/bootstrap5.3.0/dist/js/bootstrap.bundle.min.js"></script> 为什么最后引入例子 <!-- templates/inspection_records.html --><!DOCTYPE html> <html lang…

zookeeper解析

目录 zookeeper定义 zookeeper定义 Zookeeper是一个开源的分布式的&#xff0c;为分布式框架提供协调服务的Apache项目 Zookeeper工作机制 zookeeper从设计模式角度来理解&#xff1a; 是一个基于观察者模式设计的分布式服务管理框架&#xff0c;它负责存储和管理大家都关心…

arm内核驱动-中断

先介绍个东西 ctags 这个工具可以像keil一样在工程里查找跳转&#xff0c;帮我们找到我们想要的东西。 安装教程可以找到&#xff0c;这里只讲怎么用。 在工程目录&#xff08;包含所有你会用到的头文件等&#xff09;下&#xff0c;先加载这个命令&#xff0c;可能要等待…

VSCode中调试C++程序

目录 一、准备工作&#xff1a;安装插件 1、C/C插件 ​编辑 2、CMake插件 3、CMake tool插件 二、调试过程 1、debug 2、打断点 3、调C/C文件 每次重新调试的时候都忘了具体步骤&#xff0c;直接给自己写个备忘录好了。 一、准备工作&#xff1a;安装插件 1、C/C插件…

李沐29_残差网络ResNet——自学笔记

残差网络 残差网络的核心思想是&#xff1a;每个附加层都应该更容易地包含原始函数作为其元素之一。 残差块 串联一个层改变函数类&#xff0c;我们希望扩大函数类&#xff0c;残差块加入快速通道来得到f(x)xg(x)的结果 ResNet块 1.高宽减半的ResNet块&#xff08;步幅2&a…

Android开发之移除权限

Android开发之移除权限 在Android开发结束后&#xff0c;我们将build好的App Bundle上传至Google Play。这时Google可能会提示一些需要解决的错误&#xff0c;比如xx权限需要限制&#xff0c;需要解释为什么需要这些权限&#xff0c;需要添加文字描述和视频链接&#xff0c;但…

MicroCinema与CCEdit:让文生视频兼具创造性与可控性

编者按&#xff1a;随着视频生成技术的飞速进步&#xff0c;我们见证了人工智能技术在视频清晰度、长视频连贯性以及对物理变化理解和镜头转换处理能力方面的显著提升。不过&#xff0c;这些高质量的生成结果是否完全符合我们的需求呢&#xff1f;显然&#xff0c;并非总是如此…

如何借助AI高效完成写作提纲

AI变革力量&#xff1a;未来数据中心的智能化之旅&#xff01; 在当今这个信息爆炸的时代&#xff0c;人工智能&#xff08;AI&#xff09;在众多领域展现出了它的能力&#xff0c;特别是在写作领域。AI写作工具不仅能够帮助我们高效地生成内容&#xff0c;还能在一定程度上提升…

利用弱监督定位的高分辨率乳腺癌筛查图像的可解释分类器

标准筛查乳房 X 光检查由每个乳房的两张高分辨率 X 射线组成&#xff0c;分别从侧面&#xff08;“中外侧”或 MLO 视图&#xff09;和上方&#xff08;“头尾”或 CC 视图&#xff09;拍摄&#xff0c;总共四张图像。 乳房X光照片的分辨率非常高&#xff0c;而大多数无症状癌症…

WebGL异步绘制多点

异步绘制线段 1.先画一个点 2.一秒钟后&#xff0c;在左下角画一个点 3.两秒钟后&#xff0c;我再画一条线段 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"…

[2024年4月最新]Python安装教程

一、Python下载 1、进入Python官网 官网地址&#xff1a;https://www.python.org 2、点击【Downloads】展开后点击【Windows】跳转到下载python版本页面&#xff0c;选择"Stable Releases"稳定版本&#xff0c;我下载的是Python 3.10.10版本&#xff0c;所以找到【…

IDEA中无法保存设置 Cannot Save Settings

确定原因: 在IDEA中父工程不应该存在有子工程的相关东西 首先,这是我的DCYJ项目(观察右侧的Content Root) 其次,这是我的EAPOFode项目(观察右侧的Content Root爆红处) 最后我将DCYJ项目右侧的Content Root全部删掉

共享单车到底是什么通信原理

我们经常骑的共享单车到底是什么通信原理&#xff0c;有人了解过吗&#xff1f; 一、智能车锁 共享单车最核心的硬件是智能车锁&#xff0c;主要用于实现控制和定位功能。 车锁内集成了嵌入式芯片&#xff08;通信模块&#xff09;&#xff0c;GPS模块和物联网SIM卡。 智能锁制…

DP例题详解(二)最短编辑距离和编辑距离

902. 最短编辑距离 - AcWing题库 #include<bits/stdc.h>using namespace std;const int N1010;int n,m; char a[N],b[N]; int f[N][N];int main() {cin>>n>>a1;cin>>m>>b1;for(int i0;i<m;i)f[0][i]i;for(int i0;i<n;i)f[i][0]i;//先初始化…