Dockerfile COPY指令失败?

所有人,我正在尝试将文件从主机持久复制到映像,以便基于该映像启动的每个容器都可以使用这些文件。在debian wheezy

64bit上以virtualbox guest身份运行。

Dockerfile非常简单(安装八度映像):

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指令失败? 的全部内容, 来源链接: utcz.com/qa/422011.html

回到顶部