Dockerfile中copy 所在的源目录是什么?

一个目录下有Dockfile和example.jar
Dockerfile中有部分内容如下:

COPY example.jar /app

我在一个目录A下运行

  docker build -t image_name ./

然后报错

COPY failed: stat /var/lib/docker/tmp/docker-builder457658077/example.jar: no such file or directory

/var/lib/docker/tmp/docker-builder457658077/ 这个目录不是A,是哪里来的都不知道,我所在的目录A下有Dockerfile和example.jar,为何COPY指令不是从当前目录copy?如果要从当前目录copy怎么做?

阅读 6k
1 个回答
 docker build -t image_name ./

最后的./ 参数指定了build context,对应目录会被发送给docker deamon再开始构建。

出现你的错误,可能是文件名拼写错误

$ cat Dockerfile
FROM alpine:3

COPY example.jar /app

$ tree
.
├── Dockerfile
└── examplE.jar # 写错名字
 
$ docker build -t image_name ./  
Sending build context to Docker daemon   2.56kB # ./ 作为build context 发送给 Docker daemon
Step 1/2 : FROM alpine:3
 ---> 965ea09ff2eb
Step 2/2 : COPY example.jar /app
COPY failed: stat /var/lib/docker/1000.1000/tmp/docker-builder685184255/example.jar: no such file or directory
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题