Робота з Podman
Sharing files between a container and the host Btrfs filesystem#
нотатка
Цей метод працює лише на підтримуваних Podman файлових системах з копіюванням при записі, таких як Btrfs. Для інших файлових систем, таких як Ext4, pnpm замість цього скопіює файли.
Podman підтримує файлові системи з копіюванням при записі, такі як Btrfs. За допомогою Btrfs середовища виконання контейнерів створюють фактичні підтоми Btrfs для своїх змонтованих томів. pnpm can use this behavior to reflink the files between different mounted volumes.
Щоб поділитися файлами між хостом і контейнером, змонтуйте теку store і теку node_modules з хосту в контейнер. Це дозволяє pnpm всередині контейнера природним чином повторно використовувати файли з хосту як рефлінки.
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.
Нижче наведено приклад налаштування контейнера для демонстрації:
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
Запустіть наступну команду, щоб створити образ podman:
podman build . --tag my-podman-image:latest -v "$HOME/.local/share/pnpm/store:/pnpm-store" -v "$(pwd)/node_modules:/app/node_modules"