纱线工作区和码头工人

时间:2018-06-01 19:51:04

标签: docker yarn-workspaces

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

文件夹结构如下所示:

    • Dockerfile
    • node_modules /
      • libA - > ../利巴
    • LIBA /
      • ...
    • 应用程序/
      • ...

不幸的是,Docker不支持符号链接 - 因此无法将根目录中的node_modules文件夹复制到Docker镜像中,即使Dockerfile在根目录中也是如此。

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

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

由于

1 个答案:

答案 0 :(得分:0)

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

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

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

RUN yarn install

然后你应该全部排序!

您应该做的另一件事是在 .gitignore <中包含 node_modules 目录em> .dockerignore 文件,因此在分发代码时永远不会包含这些文件。

TL; DR:不要从本地计算机上复制 node_modules 目录,在Dockerfile中包含RUN yarn install