在我的Dockerfile中,我有以下“ COPY”语句:
# Copy app code
COPY /srv/visitor /srv/visitor
不用说,在我的主机系统的“ / srv / visitor”目录下,确实存在我的源代码:
[root@V12 visitor]# ls /srv/visitor/
Dockerfile package.json visitor.js
现在,当我尝试使用此Dockerfile构建映像时,它在应该发生“ COPY”的步骤处挂起:
Step 10 : COPY /srv/visitor /srv/visitor
INFO[0155] srv/visitor: no such file or directory
它说没有这样的目录,但是显然有。
有任何想法吗?
更新1:
有人指出,以我理解构建上下文的方式,我错了。该建议等于将“ COPY”语句更改为:
COPY . /srv/visitor
问题是我是这样子的,构建过程在下一步停止了:
RUN npm install
当显然有一个文件时,它说的是“找不到package.json文件”。
更新2:
我尝试通过Dockerfile中的此更改运行它:
COPY source /srv/visitor/
尝试运行npm时它停止了:
Step 12 : RUN npm install
---> Running in ae5e2a993e11
npm ERR! install Couldn't read dependencies
npm ERR! Linux 3.18.5-1-ARCH
npm ERR! argv "/usr/bin/node" "/usr/sbin/npm" "install"
npm ERR! node v0.10.36
npm ERR! npm v2.5.0
npm ERR! path /package.json
npm ERR! code ENOPACKAGEJSON
npm ERR! errno 34
npm ERR! package.json ENOENT, open '/package.json'
npm ERR! package.json This is most likely not a problem with npm itself.
npm ERR! package.json npm can't find a package.json file in your current directory.
npm ERR! Please include the following file with any support request:
npm ERR! /npm-debug.log
INFO[0171] The command [/bin/sh -c npm install] returned a non-zero code: 34
那么,是否执行过复制?如果是,为什么npm无法找到package.json?