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

Docker Init и будущее простой инициализации проектов

Далее необходимо выбрать язык программирования на котором написано ваше приложеие.

В данном примере мы рассматриваем приложение написанное на Go.

Выбираем Go и нажимаем на кнопку “Enter”.

Docker Init и будущее простой инициализации проектов

Теперь необходимо указать установленную версию Go.

В данном примере мы рассматриваем работу с версией 1.20.

Проверить установленную версию можно при помощи команды:

go version

Указываем установленную версию Go и нажимаем на кнопку “Enter”.

Docker Init и будущее простой инициализации проектов

Далее необходиом выбрать директорию проекта в котором находится “main.go”.

В данном примере “main.go” находится в корневой директории проекта.

Выбираем директорию проекта в котором находится “main.go” и нажимаем на кнопку “Enter”.

Docker Init и будущее простой инициализации проектов

Теперь необходимо указать порт на котором работает веб-сервер.

В данном примере веб-сервер использует порт 8081.

Выбираем порт на котором работает веб-сервер и нажимаем на кнопку “Enter”.

Docker Init и будущее простой инициализации проектов

Необходимые файлы для запуска приложения с помощью Docker Compose сгенерированы.

Запускаем веб-сервер с помощью Docker Compose:

docker compose up --build

Docker Init и будущее простой инициализации проектов

Веб-сервер запустился и использует порт 8081.

Теперь можно перейти по адресу http://127.0.0.1:8081 и проверить работоспособность веб-сервера.

Docker Init и будущее простой инициализации проектов

Веб-сервер работает.

Docker Init и будущее простой инициализации проектов

Преимущества Docker Init

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

После завершения Docker Init может потребоваться изменить созданные файлы, чтобы привести их в соответствие с требованиями вашего проекта. В таких случаях вы можете обратиться к документации Docker для дополнительной информации.

Заключение

Находясь на стадии бета-тестирования, Docker Init уже показывает огромный потенциал в качестве инструмента, упрощающего процесс внедрения поддержки Docker в проекты разработчиков. Автоматизируя создание активов Docker, Docker Init становится еще одним шагом в стремлении Docker упростить и улучшить мир разработки программного обеспечения.

Пополнить запасы кофе автора

💡 Telegram | Boost
💖 PayPal
🏆 Patreon
💎 GitHub
🥤 BuyMeaCoffee
🍪 Ko-fi

Владимир Михалев
Я - Владимир Михалев, Капитан Docker, но друзья могут называть меня Вальдемарыч.

DevOps комьюнити

Привет! 👋 Если у тебя есть вопросы по установке или настройке, то задайте их мне и другим ИТ-экспертам нашего сообщества: