Hacker News Digest

21 августа 2025 г. в 10:54 • emersion.fr • ⭐ 270 • 💬 96

OriginalHN

#podman#docker-compose#buildkit#buildah#bash#containers#systemd

Using Podman, Compose and BuildKit

Для сборки Docker Compose-проекта без Docker используются Podman, Docker Compose CLI и BuildKit.

Проблемы

  • Podman предлагает два варианта:
    – официальный docker-compose, но без BuildKit (нет additional_contexts);
    podman-compose, но без !reset, configs и т.д.
  • Постоянно догонять новые фичи Docker Compose не хочется.

Решение

  1. Запускаем официальный docker-compose через Podman

    pacman -S docker-compose docker-buildx
    systemctl --user start podman.socket
    docker context create podman --docker host=unix://$XDG_RUNTIME_DIR/podman/podman.sock
    docker context use podman
    

    Compose автоматически поднимает контейнер buildx_buildkit_default.

  2. Собственный BuildKit-демон (systemd)

    pacman -S buildkit
    systemctl --user start buildkit.service
    docker buildx create --name local unix://$XDG_RUNTIME_DIR/buildkit/rootless
    docker buildx use local
    
  3. Убираем демон: Bake → Bakah

    • docker buildx bake --print >bake.json – экспорт в JSON.
    • Bakah превращает JSON в вызовы Buildah (без демона).
    docker buildx bake --print >bake.json
    bakah --file bake.json
    

Bakah пока без HCL, переменных и прочих продвинутых фич, но достаточно для сложных проектов.