纱线工作区和泊坞窗

Ste*_*ven 5 docker yarn-workspaces

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

文件夹结构如下所示:

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

不幸的是,Docker 不支持符号链接 - 因此不可能将根目录中的 node_modules 文件夹复制到 Docker 映像中,即使 Dockerfile 像我一样位于根目录中。

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

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

谢谢

Yod*_*ltz 2

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

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

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

RUN yarn install
Run Code Online (Sandbox Code Playgroud)

那么你应该一切都安排好了!

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

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

  • 但是 `yarn.lock` 位于根目录中,而不是在子项目中,因此我们可能会意外升级依赖项,这将导致各种混乱(我正在尝试解决当前问题)。 (2认同)