env:Windows 10
,Docker Desktop(Docker Engine v20.10.6)
当Docker映像的第一个参数是以开头的相对路径时,在命令
COPY
(和ADD
)上生成Docker映像失败/
。错误消息显示任何路径,如。//a/b/c
被替换为/a/b/c
,因此无法在主机上找到。
请帮我找到解决这个问题的方法。在多篇文章和论坛中,我看到Docker可以正确处理相对路径,但无法找出这种情况下的错误。
项目文件夹结构
project_root
first
container
Dockerfile
second
target
artifact.file
文档
FROM whatever
RUN addgroup -S apprunner && adduser -S apprunner -G apprunner
COPY ../../second/target/artifact.file /home/apprunner/app.file
USER apprunner:apprunner
WORKDIR /home/apprunner
EXPOSE 8080
ENTRYPOINT blabla
正在从project_root执行命令
cd first/container
docker build -q -t my_image_name .
获取此错误
...
#7 [4/5] COPY ../../second/target/artifact.file /home/apprunner/app.file
#7 sha256:fefde24bc79e3e0b7a3ba0bf6754187537780b9c30fa81537cb5aea93ef9331c
#7 ERROR: "/second/target/artifact.file" not found: not found
------
> [4/5] COPY ../../second/target/artifact.file /home/apprunner/app.file:
------
failed to compute cache key: "/second/target/artifact.file" not found: not found
找不到用绝对路径替换相对路径的原因。
COPY
和ADD
指令与作为最后一个参数传递给命令docker build
的上下文路径有关。
我多次通过以下方式解决了这个问题:
所以你会有:
cd first/container
cp ../../second/target/artifact.file artifact.file
docker build -q -t my_image_name .
rm artifact.file
和
FROM whatever
RUN addgroup -S apprunner && adduser -S apprunner -G apprunner
COPY artifact.file /home/apprunner/app.file
USER apprunner:apprunner
WORKDIR /home/apprunner
EXPOSE 8080
ENTRYPOINT blabla
我正试图用集装箱装一个样品。docker内的js应用程序。 我的docker文件如下,我在项目的工作目录中 我可以成功创建图像 无论如何,当我想运行应用程序时,它并不是一个正在运行的docker镜像 我不知道我哪里做错了? [PS:]根据评论,我已将CMD更改为 但是我不能构建镜像
我的本地服务器上有一个工作的Docker Compose,现在我必须转到prod,我只是复制了prod服务器上的整个目录,相同的目录结构、配置文件等。但是当我运行Docker Compose命令(Docker-Compose-f Docker-Compose.dev.yml up)时,它抛出了以下错误: 步骤 7/28 : 复制 ../../data_acquisition_survey_api/
在dockerfile中,有相同的方法将copy命令与相对路径一起使用吗?我正在尝试使用: OBS。:我的结构文件夹(我在项目测试上运行dockerfile,另一个文件在项目控制台文件夹中)是: |-项目控制台 |-项目测试 Im收到以下错误: 错误:服务“app”无法生成:复制失败:未指定源文件。 我的目的是在同一个docker中有两个项目。我有一个dotnet核心控制台和另一个带有unity测
我的dockerfile中有以下行 当我尝试使用docker-comment构建图像时,我得到了 服务前端构建失败:lstat /root/url.net/volumes/persistent/url/root:没有这样的文件或目录 我可以从任何地方cd到根目录。net/volumes/persistent/url/root在我的机器上没有问题。 如何在dockerfile中指定文件夹的绝对路径?
我想在我的Ubuntu上运行我的 Scrape.py Docker。我的步骤: 我使用 我创建了一个Docker文件: 请问有什么问题?谢谢
我尝试使用minikube从本地docker镜像和docker hub部署kubernetes。但两者都不起作用。 方法1:使用保存和加载tar文件,创建了图像,它可用于kubectl。 执行以下命令以创建部署: 从kubectl描述pod命令, 方法2:我将映像推送到我的docker hub存储库(https://hub.docker.com/r/get2arun/elk/tags),然后在终端