从gitlab ci使用docker发布映像

问题描述

我试图用gradle创建我的战争神器,并将其推送到我的远程图像仓库中。但是问题是我得到了

copY Failed: stat /var/lib/docker/tmp/docker-builder756634785/build/libs/myartifact.war: no such file or directory.

所以,它无法触及我的神器

我如何指向正确的位置?

//gitlab-ci.yaml

stages:
  - build

variables:
  GRADLE_OPTS: "-Dorg.gradle.daemon=false"
  GRADLE_OPTS: "-Dorg.gradle.caching=true"
  
build:
  image: gradle:alpine
  stage: build
  script:
    - ./gradlew clean build -i
    
docker_build:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  script:
    - docker build --pull -t myrepo.io/myimage:latest .
    - docker login myrepo.io -u username -p pass
    - docker push myrepo.io/myimage:latest


解决方法

您需要导出在build作业中生成的工件,然后您就可以在docker_build作业中使用依赖项将其下载

在此文档中,您有很多有关如何处理它的示例https://docs.gitlab.com/ee/ci/yaml/#artifacts

并查看以下示例:https://docs.gitlab.com/ee/ci/yaml/#dependencies