[英]Docker automatically rerun npm install on package.json change
[英]Docker no such file package.json when running npm install
我在 Windows 10 上運行 Docker,當我運行 docker docker-compose up -d
此錯誤,但我不知道為什么。
npm WARN saveError ENOENT: no such file or directory, open '/var/www/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/var/www/package.json'
npm WARN www No description
npm WARN www No repository field.
npm WARN www No README data
npm WARN www No license field.
這是我的 docker-compose.yaml文件
version: '3'
services:
# Nginx client app server
nginx-client:
container_name: nginx-client
build:
context: ./docker/nginx-client
dockerfile: Dockerfile
restart: unless-stopped
ports:
- 28874:3000
volumes:
- ./client:/var/www
networks:
- app-network
# Networks
networks:
app-network:
driver: bridge
這是我的Dockerfile
FROM node:12
WORKDIR /var/www
RUN npm install
CMD ["npm", "run", "serve"]
發生這種情況是因為首先您要從 Dockerfile 構建一個映像,其中包含以下命令:
WORKDIR /var/www
RUN npm install
但是現在這個目錄是空的。 只有在創建容器之后,才會進行綁定掛載。 你可以在文檔中閱讀更多關於它的信息,它指出:
服務定義包含應用於為該服務啟動的每個容器的配置,就像將命令行參數傳遞給 docker run 一樣。 同樣,網絡和卷定義類似於
docker network create
和docker volume create
。
如果您需要在映像構建時使用此文件,我建議使用 COPY 命令,例如:
COPY ./client/package*.json ./
RUN npm install
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.