【发布时间】:2018-09-28 22:55:43
【问题描述】:
我对 Docker 和 Gradle 几乎是新手。我正在使用 Docker、Gradle 和 Jenkins 构建自己的 CI 流程。
我想要什么:
在 Jenkins 上执行构建会执行包含 gradle-docker 插件(palantir)的 Gradle 构建脚本,因此它会构建相应的 Docker 映像。
我做了什么:
我要构建的 Docker 映像必须包含一个可执行的 jar 文件(Spring-boot),所以我添加了一个 Docker 构建步骤,添加到我的 Dockerfile 以添加我由同一个 Gradle 的构建任务创建的 jar 文件构建我的新 Docker 映像的过程。
Gradle创建的docker build context目录是:
/var/lib/jenkins/workspace/build_test_docker/build/docker
上述目录最初只有 Dockerfile。所以我复制了我想通过 Jenkins 中的 Execute shell 步骤添加的 jar,如下所示:
cp ${WORKSPACE}/build/libs/*jar ${WORKSPACE}/build/docker/
但我失败了,因为-
我遇到了什么:
我收到以下错误:
ADD failed: stat /var/lib/docker/tmp/docker-builder498743832/gs-spring-boot-docker.jar: no such file or directory
我发现上述错误的主要原因是 gradle-docker 插件意外删除了包含应该添加到新 Docker 映像中的 jar 文件的 docker 目录,并创建了一个只有 Dockerfile 的新 docker 目录.
这个问题我该怎么办?我认为即使不使用执行 shell 复制步骤,也会有一种简单而出色的方法来解决问题。
【问题讨论】:
-
您是否将
files参数添加到Docker config -
@nlloyd 啊!谢谢!这就是我所缺少的。你节省了我的时间。
标签: java docker jenkins gradle continuous-integration