项目存放在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

相关推荐

  1. 初始化git项目github

    2024-04-12 10:46:03       30 阅读
  2. git-将老项目的分支项目的新分支

    2024-04-12 10:46:03       39 阅读
  3. 编写dockerfile文件,将打包dockerhub

    2024-04-12 10:46:03       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-12 10:46:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-12 10:46:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-12 10:46:03       82 阅读
  4. Python语言-面向对象

    2024-04-12 10:46:03       91 阅读

热门阅读

  1. 速盾:为什么会出现高防cdn?它适合哪些行业?

    2024-04-12 10:46:03       94 阅读
  2. symfony框架介绍

    2024-04-12 10:46:03       37 阅读
  3. C#泛型的逆变协变

    2024-04-12 10:46:03       150 阅读
  4. C语言—每日选择题—Day70(需要看)

    2024-04-12 10:46:03       36 阅读
  5. svdpi.h源码

    2024-04-12 10:46:03       27 阅读
  6. 代码随想录算法训练营第四十四天|leetcode309、714题

    2024-04-12 10:46:03       106 阅读