java - 找不到docker ADD命令抛出文件
问题描述
我有一个 docker 映像,它使用ADD
命令来复制和解压缩一个名为dependencies.tar
. build 命令在本地工作得很好,但它一直抱怨在 bitbucket 管道中找不到该文件。最重要的是,当我ls
在管道中执行命令时,我可以在那里看到文件。
编辑:
我也尝试过将ADD
命令与这样的相对路径一起使用ADD proxy-service/build/libs/dependencies.tar /build/libs/
FROM adaptavist/all-tools AS build
COPY . /code
WORKDIR /code
ARG NEXUS_USERNAME
ARG NEXUS_PASSWORD
ARG NEXUS_URL
ENV NEXUS_USERNAME=$NEXUS_USERNAME
ENV NEXUS_PASSWORD=$NEXUS_PASSWORD
ENV NEXUS_URL=$NEXUS_URL
RUN configure_maven.sh
RUN ./gradlew proxy-service:build proxy-service:tarDepsForDockerJava11 -i --stacktrace -PisJava11
RUN ls -l proxy-service/build/libs
ADD /code/proxy-service/build/libs/dependencies.tar /build/libs/
COPY proxy-service/build/libs/proxy-service.jar /build/
FROM gcr.io/distroless/java:11
COPY --from=build /build /app
EXPOSE 5061
WORKDIR /app
ENTRYPOINT ["java", "-XshowSettings:vm", "-XX:MinRAMPercentage=50", "-XX:MaxRAMPercentage=80", "-cp", "proxy-service.jar:libs/*", "ratpack.groovy.GroovyRatpackMain"]
位桶管道错误:
BUILD SUCCESSFUL in 5m 26s
10 actionable tasks: 10 executed
Stopped 1 worker daemon(s).
Removing intermediate container 8e83ff85f7ed
---> ddeb967de678
Step 12/19 : RUN ls -l proxy-service/build/libs
---> Running in c952752f4298
total 62924
-rw-r--r-- 1 root root 64286720 Jul 9 05:43 dependencies.tar
drwxr-xr-x 2 root root 12288 Jul 9 05:43 libs
-rw-r--r-- 1 root root 129325 Jul 9 05:39 proxy-service.jar
Removing intermediate container c952752f4298
---> c3572b086609
Step 13/19 : ADD /code/proxy-service/build/libs/dependencies.tar /build/libs/
ADD failed: file not found in build context or excluded by .dockerignore: stat code/proxy-service/build/libs/dependencies.tar: file does not exist
知道这里可能是什么问题吗?以及如何解决?
解决方案
问题与图像中的工作目录与 bitbucket 运行器中的内容之间的一些混淆有关,首先需要做什么:
验证运行程序拉取的代码的当前路径在哪里
在使用ls显示内容后,使用pwd显示 runner 内部的当前路径以获取路径。
确保您的 dockerfile 和要复制的文件存在于 runner 中,并为每两个获取路径。
注意:要复制的文件取决于代码仓库中的位置,而不是工作目录
推荐阅读
- c# - 无法点击 Gmail 中的下载链接
- python-3.x - Soup.find_all 即使元素存在也返回 None
- javascript - 创建具有多个元素的样式化组件
- git - 从 Bitbucket 克隆 Databricks 笔记本
- azure-devops - 总是:Azure DevOps 管道中的真实行为问题
- ssh - 我在 Oracle Cloud 中运行的网站出现故障,我该如何修复?
- node.js - k8s 中的 nodejs Web 应用程序出现 OOM
- android - 您的应用是否在面向 Android 9 (Pie) 或更早版本(SDK 级别 28 或更低)的 APK 或 app bundle 中访问后台位置?
- c# - 为什么自动实现的列表属性充当 C# 中所有实例的共享属性?
- android - 初始化 ADB 时出错:无法创建调试桥:无法启动 ADB 服务器