在Dockerfile中从Windows主机向Docker镜像复制文件遇阻
Docker镜像文件复制问题及关键提醒
重要提醒
直接从主机向构建中的镜像复制文件是不被允许的,这点相关资料提及较少。正确流程为:先启动镜像创建运行中的容器,通过docker cp将文件复制到容器内,再使用docker commit打标签生成包含目标文件的镜像,后续在Dockerfile中即可正常使用COPY命令,文件也会显示在Files标签页。
问题描述
在Windows主机上使用Linux容器时,无法将文件直接复制到新构建的Docker镜像中。已将所需文件放入Dockerfile所在的根上下文文件夹,甚至将单个文件直接放在根上下文目录;用docker cp能复制文件到容器,但希望文件默认存在于镜像内。尝试ADD命令也得到相同错误结果,且不存在.dockerignore文件,移除COPY命令后镜像可正常构建。
报错信息
ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref |sha redacted|::|sha redacted|: "/mytext.txt": not found
上下文结构(期望的使用方式)
DockerFile + -- /mydirectory + -- mytext.txt
尝试过的命令
可正常执行的命令
WORKDIR /mydirectory
WORKDIR后执行无效的命令
COPY . .<- 期望将主机工作目录下所有内容复制到镜像中- 方式一:
COPY mytext.txt /mydirectory - 方式二:
COPY mytext.txt .<- 已将文件移至根上下文而非子目录 - 方式三:
COPY mytext.txt ./ - 方式四:
COPY c:/project/mydirectory/mytext.txt /mydirectory - 方式五:
COPY c:/project/mydirectory/mytext.txt .
内容的提问来源于stack exchange,提问作者spivey
相关产品推荐
相关产品推荐

