2025-10-29 14:25:38 +03:00

Universal Docker Management Project

License: MIT Docker Make

Автор: Сергей Антропов
Версия: 2.0
Сайт: https://devops.org.ru

📋 Описание проекта

Универсальный проект для автоматизации работы с Docker-образами. Включает в себя:

  • Универсальный Dockerfile на базе Ubuntu 22.04 с предустановленными утилитами
  • Мощный Makefile с полным набором команд для Docker и Git
  • Подробную документацию на русском языке
  • Готовые сценарии для оффлайн-деплоя

🚀 Быстрый старт

Предварительные требования

  • Docker (версия 20.10+)
  • Make (GNU Make 3.81+)
  • Git (версия 2.0+)

Установка

  1. Клонируйте репозиторий:
git clone ssh://git@git.antropoff.ru:222/DevOpsTools/Dockerfile.git
cd Dockerfile
  1. Проверьте Makefile:
make help
  1. Проверьте Docker:
make docker print-config

📚 Документация

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

Подробные инструкции по установке Docker, Make и Git на различных операционных системах:

  • Linux (Ubuntu/Debian, CentOS/RHEL/Fedora)
  • macOS (Homebrew, Docker Desktop)
  • Windows (WSL2, Git Bash)
  • Устранение проблем установки

🐳 Dockerfile

Описание универсального Dockerfile и способы его использования:

  • Особенности и структура
  • Расширение и настройка
  • Оптимизация и безопасность
  • Примеры использования

⚙️ Makefile

Полное описание команд и переменных Makefile:

  • Основные команды Docker и Git
  • Подробное описание всех переменных
  • Настройка и конфигурация
  • Служебные функции

📖 Примеры использования

Практические примеры и сценарии использования:

  • Базовая сборка и публикация
  • Мультиплатформенная сборка
  • Оффлайн деплой
  • Работа с аргументами сборки
  • Отладка и мониторинг

💡 Лучшие практики

Рекомендации по эффективному использованию:

  • Управление версиями
  • Безопасность
  • Оптимизация сборки
  • Мониторинг и логирование
  • Организация проекта

🐛 Решение проблем

Диагностика и решение частых проблем:

  • Частые ошибки и их решения
  • Проблемы с памятью, сетью, правами доступа
  • Диагностические команды
  • Получение помощи

FAQ

Ответы на часто задаваемые вопросы:

  • Общие вопросы
  • Вопросы по Docker, Makefile, Git
  • Вопросы по производительности и безопасности
  • Вопросы по отладке и конфигурации

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

Docker команды

  • make docker build - сборка образов (двойные теги TAG1/TAG2)
  • make docker rebuild - пересборка без кэша (с TAG1/TAG2)
  • make docker pull - скачивание/обновление образов по TAG1/TAG2
  • make docker push - публикация в registry (оба тега)
  • make docker save/load - работа с архивами
  • make docker check - проверка образов

Git команды

  • make git status - статус репозитория
  • make git commit - создание коммитов
  • make git push - отправка изменений
  • make git sync - полная синхронизация

Дополнительные возможности

  • Мультиплатформенная сборка (buildx)
  • Оффлайн деплой с архивами
  • Подробное логирование
  • Гибкая конфигурация

📁 Структура проекта

Dockerfile/
├── dockerfile          # Универсальный Dockerfile
├── makefile           # Makefile с командами Docker и Git
├── README.md          # Главная документация
├── docs/              # Подробная документация
│   ├── installation.md
│   ├── dockerfile.md
│   ├── makefile.md
│   ├── examples.md
│   ├── best-practices.md
│   ├── troubleshooting.md
│   └── faq.md
├── logs/              # Директория логов (создается автоматически)
├── images/            # Директория архивов образов
└── .offline/          # Временные файлы для оффлайн операций

🚀 Быстрые команды

Основные операции

# Сборка образа
make docker build IMAGE=myapp TAG1=latest TAG2=v1.0.0

# Публикация образа
make docker push IMAGE=myapp TAG1=latest TAG2=v1.0.0

# Пересборка без кэша с двумя тегами
make docker rebuild IMAGE=myapp TAG1=latest TAG2=v1.0.0

# Скачать/обновить оба тега
make docker pull IMAGE=myapp TAG1=latest TAG2=v1.0.0 REGISTRY=hub.cism-ms.ru/library

# Проверка образа
make docker check RUN_CMD="lsb_release -a"

# Сохранение в архив
make docker save SRC_IMAGE=myapp:latest COMPRESS=1

Git операции

# Статус репозитория
make git status

# Коммит и push
make git push GIT_MSG="Обновление"

# Полная синхронизация
make git sync

🤝 Вклад в проект

  1. Форкните репозиторий
  2. Создайте ветку для новой функции (git checkout -b feature/amazing-feature)
  3. Зафиксируйте изменения (git commit -m 'Add amazing feature')
  4. Отправьте в ветку (git push origin feature/amazing-feature)
  5. Откройте Pull Request

📄 Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.

👨‍💻 Автор

Сергей Антропов

🙏 Благодарности

  • Сообществу Docker за отличные инструменты
  • GNU Make за мощную систему сборки
  • Ubuntu за стабильную базовую платформу

📞 Поддержка

Если у вас есть вопросы или предложения:

  1. Создайте Issue
  2. Напишите на email: devops@devops.org.ru
  3. Посетите сайт: https://devops.org.ru

Если проект был полезен, поставьте звезду!

Description
Этот Makefile предназначен для автоматизации сборки, проверки, публикации и архивирования Docker-образов. Подходит как для обычного Docker, так и для Buildx (мультиплатформенная сборка). Поддерживает офлайн-режим (работу без доступа к интернету) через .tar / .tar.gz архивы.
Readme 33 MiB
Languages
Makefile 100%