从 gitlab ci 使用 docker 发布图像

Publishing image with docker from gitlab ci

我正在尝试使用 gradle 创建我的 war 工件并将其推送到我的远程图像存储库。但问题是我得到了

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