我目前拥有一个包含以下结构的单一代码库:
.
├── services/
│ └── api/
│ ├── src/
│ │ └── ...
│ └── Dockerfile
├── apps/
│ └── frontend
├── packages/
│ └── ...
├── .npmrc
├── docker-compose.yaml
└── pnpm-lock.yaml
Dockerfile 包含以下命令:
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文件中,我使用docker-compose文件和上下文 ./services/api 加载API。当我尝试这样做时,它无法找到父目录的文件,这是由于Docker的某些安全功能造成的。我可以更改上下文并相应地更改命令,但这会加载整个API代码库的映像。这会减慢构建和部署速度,我的问题是是否有其他方法来组织monorepo以支持带有Docker的pnpm?我找不到任何相关资源。
最好的问候
.dockerignore
文件了吗?它可以防止将整个代码库加载到上下文中。 - bogdanoff