COPY package.json - Dockerfile

Wel*_*ior 5 json node.js docker dockerfile

我为Node.js中的项目做了一个Dockerfile,但发生了错误.

这是Dockerfile:

FROM node:latest
RUN npm install nodemon -g
WORKDIR ./app
COPY package.json ./app
RUN npm install -g
COPY server.js ./app
EXPOSE 3000
CMD ["npm", "start"] 
Run Code Online (Sandbox Code Playgroud)

当我尝试构建此Dockerfile时发生如下错误:

Step 4/8 : COPY package.json ./app
COPY failed: stat /var/lib/docker/tmp/docker-builderXXXXXXXX/package.json: no such file or directory
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Docker版本17.12.0

Sgr*_*t87 5

永远不要在生产环境中运行nodemon(如果您尝试这样做)。您应该配置重新启动,以防应用程序崩溃。always最好在 docker-compose.yml 中设置

根据您的情况构建 Dockerfile 的最佳方法:

FROM node:latest
WORKDIR ./app
# please note, you already declared a WORKDIR, 
# therefore your files will be automaticaly pushed to ./app
COPY package.json ./
RUN npm install -g
COPY ./ ./ 
EXPOSE 3000
CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)

希望,这有帮助。


Chr*_*itz 1

确保您的 Dockerfile 的同一目录中有 package.json 和 server.js 文件,并且它应该可以工作。

当您构建 docker 镜像时,该目录的全部内容将成为您的 docker 构建上下文,docker 将从那里找到您复制或添加的文件。

有时您可能希望阻止其中一些文件发送到构建上下文,在这种情况下,您可以使用 .dockerignore 文件来指定这些文件。祝你好运!