当前位置: 首页 > 面试题库 >

Dockerfile COPY指令失败?

乐刚毅
2023-03-14
问题内容

所有人,我正在尝试将文件从主机持久复制到映像,以便基于该映像启动的每个容器都可以使用这些文件。在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本身打包文件。



 类似资料:
  • 例如,Angular 2内置的属性指令ngClass和ngStyle,可以在任何组件或元素上工作。

  • 我试图建立一个类,它可以环绕。NET Google API,这样我就可以使用我以前获得的访问令牌来访问用户的Google驱动器。到目前为止,我只是试图让它工作,这样我就不需要刷新令牌(稍后会有更多)。最终目标是让某人通过我设置的web页面进行身份验证,通过直接调用Google Rest API(我将其存储在数据库中)获得访问令牌和刷新令牌。然后,他们可以请求将文件上载/下载到另一个页面上的驱动器上

  • View Example 指令与我们看到的其他指令有不同的语法。 如果你熟悉for...of语句,你会注意到,他们几乎相同。 ngFor允许您指定要迭代的iterable对象,以及在范围内引用每个项的名称。 在我们的示例中,您可以看到该 可用于插值以及属性绑定。 该指令做一些额外的解析,所以当它扩展到模板形式,它看起来有点不同: View Example 请注意,模板元素上有一个奇怪的let-ep