Spring boot Gitlab ci-应用程序jar中工件的差异

Spring boot Gitlab ci-应用程序jar中工件的差异,spring-boot,docker,gitlab-ci,Spring Boot,Docker,Gitlab 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-snapsho

我的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"
但是,当我在提交、更改等之后使用docker映像时,仍然看到第一个application.jar,没有任何更改


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

我无法复制该问题,但有一些方法可以“解决”:

  • 尝试修复缩进:
  • 在工件中使用模式:(当版本更改时,不需要更改代码)
  • .gitlab ci.yml

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

    FROM openjdk:8u201-jdk-alpine3.9
    ADD target/*.jar .
    
  • 使用依赖项:

    在“从maven生成作业定义依赖项”中:

  • 使用
    artifacts:expire
  • .gitlab ci.yml

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

    我不理解你所有的问题,但我认为你有缓存问题。也许,(我说也许)
    工件
    指令缓存了您以前的.jar。问题是:在构建过程之后,当我使用docker映像时-我看到我的应用程序的第一个版本-没有更改、更新等。您何时构建docker映像?在gitlab ci文件中,在构建过程中。请查看我的原始帖子-已更新。非常感谢您的回复。它帮助我清除项目中的一些代码。