与 Podman 配合使用
在容器与宿主机的 Btrfs 文件系统之间共享文件
Podman 支持 Btrfs 这类写时复制文件系统。在 Btrfs 上,容器运行时为挂载卷创建真正的 Btrfs 子卷。pnpm 可以利用这一行为,在不同挂载卷之间创建引用链接(reflink)。
要在宿主机与容器之间共享文件,请将宿主机上的存储目录和 node_modules 目录挂载到容器中。这样容器内的 pnpm 就能以引用链接的形式自然复用宿主机的文件。
以下是一个用于演示的容器配置示例:
在 package.json 的 devEngines.runtime 中声明 Node.js。下方的 pnpm install 命令会自动安装声明的版本。
Dockerfile
FROM ghcr.io/pnpm/pnpm:12
WORKDIR /app
VOLUME [ "/pnpm-store", "/app/node_modules" ]
RUN pnpm config --global set store-dir /pnpm-store
# You may need to copy more files than just package.json in your code
COPY package.json /app/package.json
RUN pnpm install
RUN pnpm run build
运行以下命令构建 podman 镜像:
podman build . --tag my-podman-image:latest -v "$HOME/.local/share/pnpm/store:/pnpm-store" -v "$(pwd)/node_modules:/app/node_modules"本页内容译自pnpm 官方文档(MIT License),如有出入以英文原文为准。