相关疑难解决方法(0)

如何在不发布的情况下在 lerna monorepo 中构建 docker 镜像

这个用例是在 Lerna monorepos 中的分支构建和部署。

问题是 Lerna monorepos 要么提升 NPM 中的依赖项,要么使用 yarn 工作区达到相同的效果来收集工作区/monorepo 的 node_modules 文件夹中的所有依赖项。这意味着由于 docker 构建上下文的工作方式,在子文件夹中构建 Dockerfile 时将无法访问它们。

我想这里需要的是一种“较低”(与提升相反)的函数,用于在运行 docker build 之前将包依赖项拉到 Docker/package.json 项目的 node_modules 中。

问题是,有没有人有更好的主意,或者知道已经存在的方法来做到这一点?

javascript npm docker lerna

23
推荐指数
2
解决办法
6663
查看次数

开发人员是否应该能够在他们的开发环境中从 lerna monorepo 创建一个 docker 工件?

我最近开始使用 lerna 来管理 monorepo,在开发中它运行良好。

Lerna 在我的各种包之间创建符号链接,因此像 'tsc --watch' 或 nodemon 这样的工具可以很好地检测其他包中的变化。

但是我在这种环境中创建 docker 镜像时遇到了问题。

假设我们有一个具有这种结构的项目:

root
  packages
     common ? artifact is a private npm package, this depends on utilities, something-specific
     utilities ? artifact is a public npm package
     something-specific -> artifact is a public npm package
     frontend ? artifact is a docker image, depends on common
     backend ? artifact is a docker image, depends on common and utilities
Run Code Online (Sandbox Code Playgroud)

在这种情况下,在开发中,一切都很好。我正在运行某种实时重新加载服务器,并且符号链接可以正常工作,因此依赖项可以正常工作。

现在假设我想从后端创建一个 docker 镜像。

我将介绍一些场景:

  1. ADD在我的 Dockerfile 中打包.json,然后运行 ​​npm install。 …

docker microservices devops monorepo

13
推荐指数
1
解决办法
2950
查看次数

标签 统计

docker ×2

devops ×1

javascript ×1

lerna ×1

microservices ×1

monorepo ×1

npm ×1