GitLab应用程序JAR中的CI差异 [英] Gitlab ci - differences in artifacts app jar

查看:7
本文介绍了GitLab应用程序JAR中的CI差异的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的dockerfile:

FROM openjdk:8u201-jdk-alpine3.9
ADD target/app-snapshot-0.0.1.jar .

在GitLab-ci Runner中,在maven构建过程中:

maven:
  image: maven:3-jdk-8
  stage: maven

    script:
        - "mvn clean package -e"
      artifacts:
        name: "app-snapshot"
        paths:
          - ./target/app-snapshot-0.0.1.jar

    build:
      stage: build
      script:
        - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
        - BUILD_IMAGE_NAME=$CI_REGISTRY_IMAGE:`echo "$CI_BUILD_REF_NAME" | tr /# _`
        - docker build --pull --force-rm=true -t "$BUILD_IMAGE_NAME" .
        - docker push "$BUILD_IMAGE_NAME"
但是,当我在提交、更改等之后使用停靠器图像时,我仍然看到第一个应用程序.jar,没有更改。

我的错误在哪里?我希望在构建过程后,看到我在Artitures JAR应用程序中所做的所有更改。

推荐答案

我无法复制该问题,但有一些方法可以解决&q;:

  1. 尝试修复缩进:
maven:
  image: maven:3-jdk-8
  stage: maven
  script:
    - "mvn clean package -e"
  artifacts:
    name: "app-snapshot"
    paths:
      - ./target/app-snapshot-0.0.1.jar
  1. 在构件中使用模式:(当版本更改时,您不需要更改代码,这很好)

.gitlab-ci.yml

  artifacts:
    name: "app-snapshot"
    paths:
      - target/*.jar

Dockerfile

FROM openjdk:8u201-jdk-alpine3.9
ADD target/*.jar .
  1. 使用dependenciesdocs

    在构建作业时定义来自Maven的依赖项:

build:
  stage: build
  script:
    - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
    - BUILD_IMAGE_NAME=$CI_REGISTRY_IMAGE:`echo "$CI_BUILD_REF_NAME" | tr /# _`
    - docker build --pull --force-rm=true -t "$BUILD_IMAGE_NAME" .
    - docker push "$BUILD_IMAGE_NAME"
  dependencies:
    - maven
  1. 是使用artifacts:expiredocs
  2. 的好做法

.gitlab-ci.yml

  artifacts:
    name: "app-snapshot"
    expire_in: 15 min #Just a example
    paths:
      - target/*.jar

这篇关于GitLab应用程序JAR中的CI差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆