Добавить объявление

Container: Linux-контейнеры на macOS без Docker

Один из самых интересных анонсов WWDC25 - Container, новый инструмент для работы с Linux-контейнерами прямо на macOS. Больше не нужен Docker - теперь можно собирать, запускать и деплоить контейнеры нативно, используя Swift и Virtualization.framework.

Что умеет Container:


  • Собирает OCI-совместимые образы (как Docker).

  • Работает на Apple Silicon (M1/M2/M3 и новее).

  • Поддерживает кросс-компиляцию (например, под amd64 для Fly.io).

  • Интегрируется с удалёнными реестрами (Docker Hub, Fly.io и др.).

Сборка и деплой Vapor-приложения:



Установка:

Установим Container через Homebrew:

brew install container
container system start # Запускаем сервисы


Сборка образа:

Допустим, у нас есть Vapor-приложение. Container умеет читать Dockerfile:

container build --tag my-app --file Dockerfile .


Локальный запуск:

container run my-app

Проверим IP контейнера:

container list


Деплой на Fly.io:

Сначала аутентифицируемся:

container registry login registry.fly.io

Собираем образ под amd64 (Fly.io не поддерживает arm):

container build --tag registry.fly.io/my-app:latest --arch amd64 --file Dockerfile .

Пушим и деплоим:

container images push registry.fly.io/my-app:latest
fly deploy --image registry.fly.io/my-app:latest

Зачем это iOS-разработчику:


  • Тестирование: быстро поднимать моки API, базы данных.

  • CI/CD: изолированные среды для SwiftLint, Fastlane.

  • Воспроизведение багов: запуск специфичных версий окружения.

  • Обучение: новички могут развернуть среду за минуты.

Текущие ограничения:


  • Только Apple Silicon.

  • Долгая сборка под amd64 (~15-20 минут).

  • Нет аналога Docker Compose (но уже есть сторонние решения).

Вывод:


Пока одни спорят, нужны ли контейнеры мобильным разработчикам, другие уже автоматизируют процессы, тестируют идеи и экономят часы работы.

Container - это не просто замена Docker. Это шаг к универсальности Swift-разработки, где один язык и экосистема работают на всех уровнях - от iOS до бэкенда.
11.08.2025 11 424