我目前有一个monorepo,其结构如下:
.
├── services/
│ └── api/
│ ├── src/
│ │ └── ...
│ └── Dockerfile
├── apps/
│ └── frontend
├── packages/
│ └── ...
├── .npmrc
├── docker-compose.yaml
└── pnpm-lock.yaml
停靠文件包含以下命令:
FROM node:18-alpine As base
RUN npm i -g pnpm
FROM base AS dependencies
WORKDIR /usr/src/app
COPY package.json ../../pnpm-lock.yaml ./
COPY ../../.npmrc ./
RUN pnpm install --frozen-lockfile --prod
...
对于我在Docker文件中加载的API,使用了上下文为./services/api的Docker合成文件。当我尝试这样做时,它找不到父目录的文件,这是由于Docker的一些安全特性。我可以相应地更改上下文和命令,但这将加载API映像的整个代码库。这会减慢构建和部署的速度,我的问题是有没有其他方法来构建monorepo来支持pnpm和Docker?我找不到任何关于这个主题的资源。
此致
1条答案
按热度按时间vfh0ocws1#
我现在实现了如下的Dockerfile。它是针对我的monorepo的,所以它可能没有什么用,但是如果有人遇到同样的问题,我还是想发布它:
我还按照bogdanoff的建议添加了一个.dockerignore,它看起来如下: