Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 使用docker-compose在Docker容器中锁定package.json文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Docker for Mac和Docker Compose来开发Node.js应用程序,我遇到了一个错误,因为package.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

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

docker-compose.yaml文件包含:

version: "3"

services:
  node:
    build:
      context: ./
      dockerfile: ./docker/Dockerfile
    volumes:
      - ./node_modules/:/Example/node_modules/
      - ./package.json:/Example/package.json

package.json文件包含:

{
  "name": "example","version": "1.0.0","description": "example","license": "UNLICENSED"
}

运行docker-compose运行–entrypoint bash节点启动bash,然后在容器内运行npm install –save redux会产生关于package.json文件被锁定的警告,但是文件可以写在Node_modules目录中主办.如何使用此结构避免对package.json文件进行锁定?

解决方法

我遇到了同样的问题,我通过挂载package.json所在的文件夹而不是package.json本身来解决这个问题.

version: "3"

services:
  node:
    build:
      context: ./
      dockerfile: ./docker/Dockerfile
    volumes:
      - .:/Example

直接将package.json挂载为卷似乎会锁定该文件.

大佬总结

以上是大佬教程为你收集整理的node.js – 使用docker-compose在Docker容器中锁定package.json文件全部内容,希望文章能够帮你解决node.js – 使用docker-compose在Docker容器中锁定package.json文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。