使用 docker-compose 在 Docker 容器中锁定 package.json 文件

2024-03-03

我正在使用 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文件使用这个结构?


我遇到了同样的问题,我通过安装文件夹解决了这个问题包.json位于而不是包.json itself.

version: "3"

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

安装包.json直接作为卷似乎锁定文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 docker-compose 在 Docker 容器中锁定 package.json 文件 的相关文章

随机推荐