【问题标题】:Copy node_modules into the docker container from outside将 node_modules 从外部复制到 docker 容器中
【发布时间】:2020-05-21 07:24:26
【问题描述】:

我们可以从外部复制mode_modules并将其粘贴到docker环境中并使用它来构建应用程序(ng build --prod),这样我们就可以避免docker文件中的npm安装步骤。

理想情况下,我不想在 docker 文件中使用 npm install 步骤,而是想使用在外部创建的现有 node_modeule 包。

据我所知,docker 镜像是从提供工作环境的基础镜像创建的,是否可以从 node_modules 从外部复制和粘贴到 docker 工作环境。

【问题讨论】:

  • 绝对不推荐这样做。你会希望你的 dockerfile 是可构建的,而不是依赖于node_modules。有时这些依赖项是特定于操作系统的,根本不应该被复制
  • 如果您的主机操作系统是 Linux 发行版,这样做没有任何问题。这是一种使用编译语言的更常见的方法,并且在多阶段构建之前更常见。你这样做有什么特别的问题吗?

标签: node.js docker dockerfile docker-machine


【解决方案1】:

理想情况下,您不应该将 node_modules 目录复制到容器中。但是,如果您绝对需要这样做,那么这里是如何做到的

创建一个 dockerfile 并从你的基础镜像扩展

FROM <your_base_nodejs_image>

(可选)在容器内设置工作目录

WORKDIR /app

那么假设dockerfile和node_modules在同一个目录下,就可以这样做了

COPY ./node_modules ./node_modules

或者,如果您想将当前目录中的所有代码复制到容器映像中,请执行此操作

COPY . .

【讨论】:

  • 我不知道!
  • 同意,node_modules 的安装应该作为镜像构建过程的一部分进行,从 CI 服务器复制到最终镜像中。
猜你喜欢
  • 2019-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-17
  • 1970-01-01
  • 2021-02-13
  • 2014-03-29
相关资源
最近更新 更多