Dockerized Запускаем консольные утилиты без головной боли

31 Aug, 2023

Репозиторий давно не обновлялся

Последнее обновление было 2 года назад.

1,271
🔱 36
👥 8

Dockerized Banner

Знакома ситуация, когда нужно быстро проверить работу скрипта на другой версии Node.js или Python, но не хочется возиться с менеджерами версий? Или требуется разово воспользоваться специфичной утилитой, которая потом будет только занимать место? Dockerized решает эти проблемы элегантно и просто.

Что такое Dockerized?

Dockerized — это инструмент, который позволяет запускать более 150 популярных консольных команд прямо внутри Docker-контейнеров. Вам не нужно ничего устанавливать глобально — просто используйте команду dockerized перед нужной утилитой, и она запустится в изолированном окружении.

Основные преимущества:

  • Чистота системы — никаких конфликтов версий и лишних зависимостей
  • Мгновенный доступ к сотням утилит без установки
  • Кросс-платформенность — работает на Linux, macOS и Windows
  • Гибкость — легко переключаться между версиями инструментов

Как это работает?

Под капотом Dockerized использует Docker Compose для управления контейнерами. Каждая команда соответствует отдельному сервису в docker-compose.yml. Когда вы выполняете, например, dockerized node, инструмент:

Реклама
  1. Находит соответствующий образ Docker
  2. Монтирует текущую рабочую директорию в контейнер
  3. Запускает команду с переданными аргументами
  4. После выполнения автоматически удаляет контейнер

Demo

Основные возможности

1. Более 150 предустановленных команд

Dockerized поддерживает огромное количество популярных утилит, разбитых на категории:

  • Облачные сервисы: AWS CLI, Azure CLI, DigitalOcean CLI
  • Базы данных: MySQL, PostgreSQL, MSSQL
  • Языки программирования: Node.js, Python, Ruby, Go, Rust и другие
  • DevOps: Ansible, Helm, Terraform
  • Сетевые утилиты: wget, httpie, telnet

Полный список можно найти в README проекта.

2. Переключение версий на лету

Одна из самых мощных функций — возможность указывать версию инструмента прямо в команде:

dockerized node:15  # Запуск Node.js 15.x
dockerized python:3.7  # Запуск Python 3.7

Или через переменные окружения:

NODE_VERSION=15 dockerized node

3. Конфигурация через dockerized.env

Вы можете создать файл dockerized.env в:

  • Домашней директории — для глобальных настроек
  • Корне проекта — для специфичных версий инструментов

Пример файла:

NODE_VERSION=16.13.0
PYTHON_VERSION=3.9.7
TYPESCRIPT_VERSION=4.6.2

4. Добавление своих команд

Если нужной утилиты нет в списке, её легко добавить через кастомный docker-compose.yml:

version: "3"
services:
  mytool:
    image: alpine
    entrypoint: ["mytool"]

Теперь можно использовать dockerized mytool.

Практические примеры

Быстрая проверка скрипта

dockerized node myscript.js
dockerized python:3.8 script.py

Инициализация проекта

dockerized vue create new-project
dockerized tsc --init

Работа с облаком

dockerized aws s3 ls
dockerized doctl compute droplet list

Установка зависимостей

dockerized npm install
dockerized pip install -r requirements.txt

Кому будет полезен Dockerized?

  1. Фронтенд-разработчики, которым нужно часто переключаться между версиями Node.js
  2. DevOps-инженеры, работающие с разными версиями инструментов
  3. Системные администраторы, которым нужен быстрый доступ к утилитам без установки
  4. Преподаватели, желающие дать студентам одинаковое окружение
  5. Любые разработчики, которые ценят чистоту своей системы

Ограничения

  • Нет доступа к родительским директориям из контейнера
  • Изменения вне рабочей директории не сохраняются
  • Для доступа к localhost нужно использовать host.docker.internal вместо localhost

Dockerized — это не просто удобная обёртка для Docker, а настоящий швейцарский нож для разработчика. Он экономит время, сохраняет систему чистой и даёт свободу экспериментировать с разными версиями инструментов. Если вы ещё не попробовали — самое время установить и ощутить все преимущества!

Установка проста:

  1. Убедитесь, что установлен Docker
  2. Скачайте последний релиз
  3. Добавьте dockerized/bin в PATH

И начинайте использовать команды без установки!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.