gpt4 book ai didi

Dockerfile COPY 指令失败?

转载 作者:IT老高 更新时间:2023-10-28 12:42:18 25 4
gpt4 key购买 nike

所有,我正在尝试将文件从我的主机永久复制到镜像,以便这些文件可用于基于该镜像启动的每个容器。作为 virtualbox guest 在 debian wheezy 64bit 上运行。

Dockerfile 相当简单(安装 octave 镜像):

FROM debian:jessie 
MAINTAINER GG_Python <[redacted]@gmail.com>
RUN apt-get update
RUN apt-get update
RUN apt-get install -y octave octave-image octave-missing-functions octave-nan octave-statistics

RUN mkdir /octave
RUN mkdir /octave/libs
RUN mkdir /octave/libs/jsonlab
COPY ~/octave/jsonlab/loadjson.m /octave/libs/jsonlab/.

发出构建命令后,我得到以下跟踪:docker build -t octave .

Sending build context to Docker daemon 423.9 kB
Sending build context to Docker daemon
Step 0 : FROM debian:jessie
---> 58052b122b60
Step 1 : MAINTAINER GG_Python <[..]@gmail.com>
---> Using cache
---> 90d2dd2f7ee8
Step 2 : RUN apt-get update
---> Using cache
---> 4c72c25cd829
Step 3 : RUN apt-get update
---> Using cache
---> b52f0bcb9f86
Step 4 : RUN apt-get install -y octave octave-image octave-missing-functions octave-nan octave-statistics
---> Using cache
---> f0637ab96d5e
Step 5 : RUN mkdir /octave
---> Using cache
---> a2d278b2819b
Step 6 : RUN mkdir /octave/libs
---> Using cache
---> 65efbbe01c99
Step 7 : RUN mkdir /octave/libs/jsonlab
---> Using cache
---> e41b80901266
Step 8 : COPY ~/octave/jsonlab/loadjson.m /octave/libs/jsonlab/.
INFO[0000] ~/octave/jsonlab/loadjson.m: no such file or directory

Docker 绝对拒绝将此文件从主机复制到镜像中。不用说文件 loadjson.m 在那里(猫显示),我所有更改路径(相对、绝对等)的尝试都失败了。有什么建议为什么这个简单的任务有问题?

最佳答案

在我最初写这篇文章的时候,Docker 并没有扩展 ~ 或 $HOME。现在它在构建上下文中进行了一些扩展,但即便如此,它们也可能不是你想要的——它们不是上下文之外的主目录。您需要显式引用该文件,或者将其相对于 Dockerfile 本身打包。

关于Dockerfile COPY 指令失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com