Робота з Podman
Спільне використання файлів між контейнером і файловою системою Btrfs
Цей метод працює лише на підтримуваних Podman файлових системах з копіюванням при записі, таких як Btrfs. Для інших файлових систем, таких як Ext4, pnpm замість цього скопіює файли.
Podman підтримує файлові системи з копіюванням при записі, такі як Btrfs. За допомогою Btrfs середовища виконання контейнерів створюють фактичні підтоми Btrfs для своїх змонтованих томів. pnpm може використовувати цю поведінку для перезвʼязування файлів між різними змонтованими томами.
Щоб поділитися файлами між хостом і контейнером, змонтуйте теку store і теку node_modules
з хосту в контейнер. Це дозволяє pnpm всередині контейнера природним чином повторно використовувати файли з хосту як рефлінки.
Нижче наведено приклад налаштування контейнера для демонстрації:
FROM node:20-slim
# corepack - це експериментальна функція в Node.js v20, яка дозволяє
# встановлювати та керувати версіями pnpm, npm, yarn
RUN corepack enable
VOLUME [ "/pnpm-store", "/app/node_modules" ]
RUN pnpm config --global set store-dir /pnpm-store
# Вам може знадобитися скопіювати більше файлів, ніж просто package.json у вашому коді
COPY package.json /app/package.json
WORKDIR /app
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"