我正在使用 Docker for Mac 和 Docker Compose 来开发 Node.js 应用程序,但遇到了错误包.json文件被锁定。运行后具体报错npm install --save <package>
正在运行的容器内是:
npm WARN saveError EBUSY: resource busy or locked, rename
'/Example/package.json.1647356251' -> '/Example/package.json'
简化的封装结构为:
▾ docker/
Dockerfile
docker-compose.yaml
package.json
The Dockerfile包含:
FROM node:9.5
ENV SOURCE_CODE /Example
COPY package.json $SOURCE_CODE/package.json
RUN npm --prefix $SOURCE_CODE install $SOURCE_CODE
WORKDIR $SOURCE_CODE
The docker-compose.yaml文件包含:
version: "3"
services:
node:
build:
context: ./
dockerfile: ./docker/Dockerfile
volumes:
- ./node_modules/:/Example/node_modules/
- ./package.json:/Example/package.json
The 包.json文件包含:
{
"name": "example",
"version": "1.0.0",
"description": "example",
"license": "UNLICENSED"
}
Running docker-compose run --entrypoint bash node
启动 bash,然后运行npm install --save redux
容器内部会产生有关以下内容的警告包.json文件被锁定,但是文件可以写入节点模块主机上的目录。如何避免被锁定包.json文件使用这个结构?