英文:
npm ERR! missing script: start when running docker compose up
问题
我正在尝试在Docker容器上运行Node.js应用程序与MongoDB。然而,每次运行docker compose up命令时,我都会收到以下错误:
>npm ERR! missing script: start
这是我的Dockerfile:
FROM node:8.11-slim
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 5500
CMD ["npm","start"]
这是我的docker-compose.yml文件:
version: '3'
services:
app:
container_name: ians-mongo
restart: always
build: ./vidly
ports:
- '5500:5500'
external_links:
- mongo
mongo:
container_name: mongo
image: mongo
volumes:
- ./data:/data/db
ports:
- '27012:27017'
mongo-express:
container_name: mongo-express
image: mongo-express
ports:
- '8083:8081'
这是我的package.json:
{
"name": "vidly",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1",
"start": "nodemon index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"config": "^3.3.9",
"debug": "^4.3.4",
"express": "^4.18.2",
"helmet": "^7.0.0",
"joi": "^17.9.2",
"morgan": "^1.10.0"
},
"devDependencies": {
"nodemon": "^2.0.22"
}
}
这是我的文件夹结构的屏幕截图:[![enter image description here][1]][1]
我想知道是否与Dockerfile无法找到package.json文件或yml文件中的build属性的值可能不正确有关。
[1]: https://i.stack.imgur.com/4mLw3.png
英文:
I am trying to run mongodb with a Node.js app on a docker container. However, every time I run the docker compose up command, I receive the following error:
>npm ERR! missing script: start
Here is my Dockerfile:
FROM node:8.11-slim
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 5500
CMD ["npm","start"]
Here is my docker-compose.yml file:
version: '3'
services:
app:
container_name: ians-mongo
restart: always
build: ./vidly
ports:
- '5500:5500'
external_links:
- mongo
mongo:
container_name: mongo
image: mongo
volumes:
- ./data:/data/db
ports:
- '27012:27017'
mongo-express:
container_name: mongo-express
image: mongo-express
ports:
- '8083:8081'
And here is my package.json:
{
"name": "vidly",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"config": "^3.3.9",
"debug": "^4.3.4",
"express": "^4.18.2",
"helmet": "^7.0.0",
"joi": "^17.9.2",
"morgan": "^1.10.0"
},
"devDependencies": {
"nodemon": "^2.0.22"
}
}
Here is a screenshot of my folder structure:
I'm wondering if it has something do with the dockerfile not being able to find the package.json file, or possibly the value for the build property in the yml file being incorrect.
答案1
得分: 1
你应该在docker-compose文件中更改应用程序的构建语句。它当前正在查看一个名为"vidly"的子目录,而这在你的屏幕截图中是不存在的。你可以添加一个dockerfile语句,以确保正确的Docker文件被使用。
version: '3'
services:
app:
container_name: ians-mongo
restart: always
build:
context: .
dockerfile: ./Dockerfile
ports:
- '5500:5500'
external_links:
- mongo
英文:
You should change the build statement for your app in the docker-compose file. It is currently looking at a "vidly" subdirectory, that doesn't exist in your screenshot. You could add a dockerfile statement which would make sure the correct dockerfile is seen.
version: '3'
services:
app:
container_name: ians-mongo
restart: always
build:
context: .
dockerfile: ./Dockerfile
ports:
- '5500:5500'
external_links:
- mongo
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论