docker - 从gitlab ci使用docker发布镜像

标签 docker gradle gitlab gitlab-ci docker-registry

我试图用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作业中生成的 Artifact ,然后才能在docker_build作业中将其下载(使用依赖项)
在此文档中,您有很多有关如何处理它的示例https://docs.gitlab.com/ee/ci/yaml/#artifacts
再看这个例子:https://docs.gitlab.com/ee/ci/yaml/#dependencies

关于docker - 从gitlab ci使用docker发布镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64015524/

相关文章:

android-studio - 为什么每次导入新的gradle项目时Android Studio都会下载gradle?

docker - 如何将 GitLab CE CI 设置为运行者的用户 docker 图像

python - python Tensorflow工作簿执行后取消分配内存

Docker Registry 与 Nexus/Artifactory

dns - Docker pull 无法在 127.0.1.1 :53 (cannot unmarshal DNS message) 上查找 index.docker.io

java - 如何在不实际构建东西的情况下制作 gradle 下载依赖项

java - heroku 应用程序远程运行正常,但在本地失败并显示 "Failed to get driver instance for jdbcUrl=jdbc:postgresql://username@localhost"

git - 如何将图标添加到我的存储库?

java - 如何在gitlab-ci build中跳过先前的Maven目标?

azure - 如何结合docker创建并将其放入DEV Azure容器注册表?