我在将文件复制到新图像时遇到问题,但我在此处找不到该图像。 我看过其他帖子,但它们似乎不起作用,例如thisone。 我在 Windows 主机上使用 Linux 容器。 我已将所需的文件复制到 Dockerfile 根上下文的文件夹中。我什至拿了一个文件并将其放在根上下文中。 我可以使用 docker cp 将文件复制到容器中,但我希望这些文件位于映像中。 我尝试了ADD,得到了相同的结果。 我没有 .dockerignore 文件。 无需使用 COPY commandlet,图像即可正常构建。
我收到此错误:
错误:无法解决:无法计算缓存密钥:无法计算引用的校验和|sha redacted|::|sha redacted|:“/mytext.txt”:找不到
我在上下文中的结构如下(我想如何使用它)
DockerFile + -- /我的目录 + -- mytext.txt
我尝试过以下命令:
WORKDIR /mydirectory
COPY . .
<- pull everything in the workdir from host to image (我想要这种行为)
COPY mytext.txt /mydirectory
COPY mytext.txt .
<- I copied it to the root context instead of the subdir
COPY mytext.txt ./
COPY c:/project/mydirectory/mytext.txt /mydirectory
COPY c:/project/mydirectory/mytext.txt .
假设您是主持人,当前文件夹包含:
tree
.
├── Dockerfile
└── my_app
├── index.html
└── scripts
└── index.js
带有
.dockerignore
包含 Dockerfile
Dockerfile
:
FROM docker.io/alpine:latest
WORKDIR mydirectory
COPY . .
RUN apk add tree && \
pwd && \
tree
然后例如:
docker build \
--tag=foo \
--file=${PWD}/Dockerfile \
${PWD}
注意 我不确定
在 Windows 中的等效项是什么,但它是对当前文件夹的引用。${PWD}
然后:
STEP 1/4: FROM docker.io/alpine:latest
STEP 2/4: WORKDIR mydirectory
--> 7606566a09d
STEP 3/4: COPY . .
--> cf9433292cd
STEP 4/4: RUN apk add tree && pwd && tree
(1/1) Installing tree (2.1.1-r0)
Executing busybox-1.36.1-r29.trigger
OK: 8 MiB in 15 packages
/mydirectory
.
└── my_app
├── index.html
└── scripts
└── index.js
3 directories, 2 files
COMMIT stackoverflow:79190089
--> 2186f71dd44
Successfully tagged localhost/foo
这就是你想要的。