Docker Init и будущее простой инициализации проектов
Docker изменил ландшафт разработки программного обеспечения, предлагая легкую, портативную и последовательную среду выполнения, которая бесшовно работает на различных инфраструктурах. Одним из последних вкладов Docker в этот развивающийся ландшафт является функция Docker Init, которая упрощает добавление Docker в любой проект.
Понимание Docker Init
Функцию Docker Init не следует путать с внутренне используемым исполняемым файлом docker-init
, который активируется Docker при использовании флага --init
с командой docker run
. Docker Init это новая функция на стадии бета-тестирования, которая автоматизирует создание основных активов, связанных с Docker, таких как Dockerfile, .dockerignore и compose.yaml.
На данный момент функция Docker Init поддерживает Go, Node и Python, при этом команда разработчиков Docker активно расширяет поддержку других языков и фреймворков, включая Java, Rust и .NET. Это последовательное расширение обещает сделать Docker Init еще более полезным для широкого круга разработчиков.
Работа с Docker Init
Для использования Docker Init вам потребуется версия Docker Desktop 4.18 или более поздняя. После настройки вы можете запустить команду docker init
в целевом каталоге вашего проекта. Docker Init определит характеристики проекта и автоматически сгенерирует необходимые файлы Docker. Эта функция особенно ценна для разработчиков, которые только знакомятся с Docker, тех, кто изучает контейнеризацию, или разработчиков, желающих интегрировать Docker в свои существующие проекты.
Подробно о том, как установить Установка Docker Desktop на macOS, вы можете прочитать в моем руководстве “Установка Docker Desktop на macOS”.
Docker Init в Действии
Возьмем для примера веб-сервер написанный на Go.
Выполняем команду для начала процесса автоматичской генерации необходимых файлов для запуса приложения с помощью Docker Compose:
docker init
Далее необходимо выбрать язык программирования на котором написано ваше приложеие.
В данном примере мы рассматриваем приложение написанное на Go.
Выбираем Go и нажимаем на кнопку “Enter”.
Теперь необходимо указать установленную версию Go.
В данном примере мы рассматриваем работу с версией 1.20.
Проверить установленную версию можно при помощи команды:
go version
Указываем установленную версию Go и нажимаем на кнопку “Enter”.
Далее необходиом выбрать директорию проекта в котором находится “main.go”.
В данном примере “main.go” находится в корневой директории проекта.
Выбираем директорию проекта в котором находится “main.go” и нажимаем на кнопку “Enter”.
Теперь необходимо указать порт на котором работает веб-сервер.
В данном примере веб-сервер использует порт 8081.
Выбираем порт на котором работает веб-сервер и нажимаем на кнопку “Enter”.
Необходимые файлы для запуска приложения с помощью Docker Compose сгенерированы.
Запускаем веб-сервер с помощью Docker Compose:
docker compose up --build
Веб-сервер запустился и использует порт 8081.
Теперь можно перейти по адресу http://127.0.0.1:8081 и проверить работоспособность веб-сервера.
Веб-сервер работает.
Преимущества Docker Init
Docker Init играет значительную роль в автоматизации создания необходимых активов Docker и стандартизации процесса на разных проектах. Он позволяет разработчикам сосредоточиться больше на разработке своих приложений, снижая риск ошибок и несоответствий, и тем самым ускоряет принятие Docker и контейнеризации.
После завершения Docker Init может потребоваться изменить созданные файлы, чтобы привести их в соответствие с требованиями вашего проекта. В таких случаях вы можете обратиться к документации Docker для дополнительной информации.
Заключение
Находясь на стадии бета-тестирования, Docker Init уже показывает огромный потенциал в качестве инструмента, упрощающего процесс внедрения поддержки Docker в проекты разработчиков. Автоматизируя создание активов Docker, Docker Init становится еще одним шагом в стремлении Docker упростить и улучшить мир разработки программного обеспечения.