我有一个turborepo monorepo,使用 yarn 工作区,如下所示
├── 包
│ ├── 服务器通用
├──服务
│ ├── 授权
Services/auth 依赖于 packages/server-common 并使用 yarn 工作区,像这样导入
"dependencies": {
"server-common": "*",
}
我想从 services/auth 构建一个 docker 镜像,但是 packages/server-common 没有托管在 npm 上,它是一个本地包。
因此,在构建以下 dockerfile 时
FROM node:16-alpine
WORKDIR /app
COPY package.json .
RUN yarn install --production
COPY . .
CMD ["npm", "start"]
它在yarn安装阶段失败,因为docker正在尝试从npm下载一个本地包。
#9 8.441 error Received malformed response from registry for "server-common". The registry may be down.
有没有办法可以将这个本地包包含在 docker 构建中?
最佳答案
解决方案是将本地包复制到容器中。
FROM node:16-alpine
COPY path/to/server-common .
WORKDIR /app
COPY package.json .
RUN yarn install --production
COPY . .
CMD ["npm", "start"]
"dependencies": {
"server-common": "file:../server-common"
}
关于docker - 如何在我的 docker 构建中包含本地包依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72002615/