Один из самых интересных анонсов
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 до бэкенда.