【发布时间】:2019-10-08 04:33:41
【问题描述】:
我在个人项目中设置 docker,但遇到了路径错误。
这是我的 Dockerfile:
FROM node:latest
WORKDIR /Users/Alex/funky-ducks/mediumrare/mediumrare
COPY ./ ./
RUN npm install
CMD ["/bin/bash"]
我的 docker-compose.yml 文件:
version: '3.7'
services:
mediumrare_docker:
container_name: container001
build: /Users/Alex/funky-ducks/mediumrare/mediumrare
command: npm start
ports:
- "3000:3000"
这是我的目录文件结构(注意下面的docker-compose.yml“mediumrare”是前端/mediumrare_server是后端):
.
└── mediumrare
├── Dockerfile
├── README.md
├── docker-compose.yml
├── mediumrare
│ ├── README.md
│ ├── node_modules
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ ├── src
│ └── yarn.lock
├── mediumrare_server
│ ├── node_modules
│ ├── package-lock.json
│ ├── package.json
│ └── server.js
├── package-lock.json
└── package.json
我尝试在顶层目录中创建一个 package.json 文件并提交 package-lock.json 文件。
当我运行docker-compose up 时,我收到的错误消息如下:
Creating container001 ... done
Attaching to container001
container001 | npm ERR! path /Users/Alex/funky-ducks/mediumrare/mediumrare/mediumrare_server/package.json
container001 | npm ERR! code ENOENT
container001 | npm ERR! errno -2
container001 | npm ERR! syscall open
container001 | npm ERR! enoent ENOENT: no such file or directory, open '/Users/Alex/funky-ducks/mediumrare/mediumrare/mediumrare_server/package.json'
container001 | npm ERR! enoent This is related to npm not being able to find a file.
container001 | npm ERR! enoent
container001 |
container001 | npm ERR! A complete log of this run can be found in:
container001 | npm ERR! /root/.npm/_logs/2019-05-21T17_39_18_298Z-debug.log
container001 exited with code 254
我看到它在构建时正在“mediumrare_server”目录中寻找 package.json 文件。然而 package.json 文件是顶部的“mediumrare”目录。为什么找不到那个文件,我该如何解决这个错误?谢谢!
【问题讨论】:
标签: node.js postgresql docker express