5

我正在尝试使用纱线工作区,然后将我的应用程序放入 Docker 映像中。

文件夹结构如下所示:

    • Dockerfile
    • 节点模块/
      • libA --> ../libA
    • 库A/
      • ...
    • 应用程序/
      • ...

不幸的是 Docker 不支持符号链接 - 因此无法将根目录中的 node_modules 文件夹复制到 Docker 映像中,即使 Dockerfile 在我的情况下位于根目录中。

我可以做的一件事是使用 .dockerignore 排除符号链接,然后将真实目录复制到图像中。

另一个想法——我更喜欢——是有一个工具用符号链接的实际内容替换符号链接。不知道有没有这样的工具(最好是Javascript包)?

谢谢

4

1 回答 1

2

Yarn 用于依赖管理,应该配置为在 Docker 容器中运行以安装必要的依赖,而不是从本地机器复制它们。

Docker 的主要好处是它允许你重新创建你的开发环境,而不必担心它正在运行的机器——同样的事情也适用于 Yarn,通过运行yarn install它为你的 Docker 映像的机器的相关架构安装正确的版本建立在。

配置工作目录后,在Dockerfile 中包含以下内容:

RUN yarn install

那么你应该全部排序!

你应该做的另一件事是在你的.gitignore.dockerignore文件中包含node_modules目录,这样在分发你的代码时就永远不会包含它。

TL;DR:不要从本地机器复制node_modulesRUN yarn install目录,包含在 Dockerfile 中

于 2018-06-05T11:11:55.000 回答