gpt4 book ai didi

docker - npm install 在 Docker 中不起作用

转载 作者:行者123 更新时间:2023-12-04 13:23:54 28 4
gpt4 key购买 nike

这是我的 Dockerfile:

FROM node:7

RUN apt-get update && apt-get install -y --no-install-recommends \
rubygems build-essential ruby-dev \
&& rm -rf /var/lib/apt/lists/*

RUN npm install -gq gulp bower

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app

RUN npm install

CMD ["gulp", "start:dev"]

当我构建镜像时,npm install 命令的执行速度非常快,几乎没有输出。我实际上是通过 docker-compose 构建它的,它确实安装了一个卷 - 我看不到在我的软管上创建的 node_modules 文件夹。当我在此图像上启动容器时,我可以看到没有 node_modules 文件夹。然后我执行 npm install,一切开始工作 - 安装所有包需要 2-3 分钟,并且确实创建了 node_modules 文件夹。

这里发生了什么?我究竟做错了什么?为什么 npm install 在构建时不起作用,但在运行时却起作用?

最佳答案

npm install 应该基于您的 Dockerfile 工作。如果您在没有安装卷的情况下运行图像,您可以看到创建的文件(DIRNAME:您的 docker-compose.yml 所在的位置):

docker run --rm -it DIRNAME_node ls -ahl/usr/src/app

使用 docker build,所有数据都存储在图像中。因此,您不会看到在您的主机上创建的任何文件。

如果挂载卷(通常在 Linux 中,也在 Docker 容器中),它 overlays the directory .所以你看不到构建步骤中创建的node_modules

我建议您根据 Docker 镜像本身进行测试,不要挂载该卷。然后你有一个 immutable Docker image哪个更适合部署。

关于docker - npm install 在 Docker 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43287999/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com