跳到主要内容
pnpm
文档目录

与 Podman 配合使用

查看英文原文 ↗

在容器与宿主机的 Btrfs 文件系统之间共享文件

Podman 支持 Btrfs 这类写时复制文件系统。在 Btrfs 上,容器运行时为挂载卷创建真正的 Btrfs 子卷。pnpm 可以利用这一行为,在不同挂载卷之间创建引用链接(reflink)。

要在宿主机与容器之间共享文件,请将宿主机上的存储目录和 node_modules 目录挂载到容器中。这样容器内的 pnpm 就能以引用链接的形式自然复用宿主机的文件。

以下是一个用于演示的容器配置示例:

package.jsondevEngines.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),如有出入以英文原文为准。