Один из самых интересных анонсов WWDC25 — Container, новый инструмент для работы с Linux-контейнерами прямо на macOS. Больше не нужен Docker — теперь можно собирать, запускать и деплоить контейнеры нативно, используя Swift и Virtualization.framework.
⚠️ Что умеет Container:
🔸 Собирает OCI-совместимые образы (как Docker).
🔸 Работает на Apple Silicon (M1/M2/M3 и новее).
🔸 Поддерживает кросс-компиляцию (например, под amd64 для
Fly.io).🔸 Интегрируется с удалёнными реестрами (Docker Hub,
Fly.io и др.).✅ Сборка и деплой Vapor-приложения:
1️⃣ Установка.
Установим Container через Homebrew:
brew install container
container system start # Запускаем сервисы
2️⃣ Сборка образа.
Допустим, у нас есть Vapor-приложение. Container умеет читать Dockerfile:
container build --tag my-app --file Dockerfile .
3️⃣ Локальный запуск.
container run my-app
Проверим IP контейнера:
container list
4️⃣ Деплой на
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 до бэкенда.
➡️ Подписаться на канал
Мобильный трудоголик