将文件从 Windows 主机复制到 DockerFile 中的 Docker 镜像

问题描述 投票:0回答:1

我在将文件复制到新图像时遇到问题,但我在此处找不到该图像。 我看过其他帖子,但它们似乎不起作用,例如thisone。 我在 Windows 主机上使用 Linux 容器。 我已将所需的文件复制到 Dockerfile 根上下文的文件夹中。我什至拿了一个文件并将其放在根上下文中。 我可以使用 docker cp 将文件复制到容器中,但我希望这些文件位于映像中。 我尝试了ADD,得到了相同的结果。 我没有 .dockerignore 文件。 无需使用 COPY commandlet,图像即可正常构建。

我收到此错误:

错误:无法解决:无法计算缓存密钥:无法计算引用的校验和|sha redacted|::|sha redacted|:“/mytext.txt”:找不到

我在上下文中的结构如下(我想如何使用它)

DockerFile
    +
    -- /我的目录
       + 
       -- mytext.txt

我尝试过以下命令:

这有效

WORKDIR /mydirectory

这些在 WORKDIR commandlet 下不起作用

COPY . .
<- pull everything in the workdir from host to image (我想要这种行为)

另一种方式1

COPY mytext.txt /mydirectory

另一种方式2

COPY mytext.txt .
<- I copied it to the root context instead of the subdir

另一种方式3

COPY mytext.txt ./

另一种方式4

COPY c:/project/mydirectory/mytext.txt /mydirectory

另一种方式5

COPY c:/project/mydirectory/mytext.txt .

docker dockerfile
1个回答
0
投票

假设您是主持人,当前文件夹包含:

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}

注意 我不确定

${PWD}
在 Windows 中的等效项是什么,但它是对当前文件夹的引用。

然后:

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

这就是你想要的。

© www.soinside.com 2019 - 2024. All rights reserved.