我有一个 docker 镜像,它使用 ADD
命令copy and unzip 一个名为 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"]
bitbucket 管道错误:
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
知道这里有什么问题吗?以及如何解决?
答案 0 :(得分:0)
与图像中的工作目录和 bitbucket runner 中的内容之间的一些混淆有关的问题,您首先需要做什么:
验证运行程序拉取的代码的当前路径在哪里
使用pwd显示runner内部的当前路径,获取路径后使用ls显示内容。
确保您的 dockerfile 和要复制的文件存在于运行器中,并获取每两个的路径。
注意:要复制的文件取决于代码存储库中的位置,而不是工作目录