Trabalhando com Podman
Sharing files between a container and the host Btrfs filesystem#
nota
Este método funciona apenas em sistemas de arquivos de cópia em gravação suportados pelo Podman, como o Btrfs. Para outros sistemas de arquivos, como Ext4, o pnpm irá copiar os arquivos.
Podman oferece suporte à sistemas de arquivos de cópia em gravação como o Btrfs. Com Btrfs, a execução de containers cria subvolumes Btrfs reais para seus volumes montados. pnpm can use this behavior to reflink the files between different mounted volumes.
To share files between the host and the container, mount the store directory and the node_modules directory from the host to the container. Isso permite ao pnpm de dentro do container naturalmente reutilizar os arquivos do hospedeiro como reflinks.
important
Only mount a host pnpm store into containers you trust. A container with write access to the mounted store can affect later installs that reuse that store.
Abaixo temos um exemplo de configuração de container para demonstração:
Declare Node.js in devEngines.runtime in your package.json. The pnpm install command below will install the declared version automatically.
FROM ghcr.io/pnpm/pnpm:11
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
Execute o seguinte comando para construir a imagem do podman:
podman build . --tag my-podman-image:latest -v "$HOME/.local/share/pnpm/store:/pnpm-store" -v "$(pwd)/node_modules:/app/node_modules"