# Universal Docker Management Project [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Docker](https://img.shields.io/badge/Docker-Universal-blue.svg)](https://www.docker.com/) [![Make](https://img.shields.io/badge/Make-Universal-green.svg)](https://www.gnu.org/software/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. **Клонируйте репозиторий:** ```bash git clone ssh://git@git.antropoff.ru:222/DevOpsTools/Dockerfile.git cd Dockerfile ``` 2. **Проверьте Makefile:** ```bash make help ``` 3. **Проверьте Docker:** ```bash make docker print-config ``` ## 📚 Документация ### 📦 [Установка зависимостей](docs/installation.md) Подробные инструкции по установке Docker, Make и Git на различных операционных системах: - Linux (Ubuntu/Debian, CentOS/RHEL/Fedora) - macOS (Homebrew, Docker Desktop) - Windows (WSL2, Git Bash) - Устранение проблем установки ### 🐳 [Dockerfile](docs/dockerfile.md) Описание универсального Dockerfile и способы его использования: - Особенности и структура - Расширение и настройка - Оптимизация и безопасность - Примеры использования ### ⚙️ [Makefile](docs/makefile.md) Полное описание команд и переменных Makefile: - Основные команды Docker и Git - Подробное описание всех переменных - Настройка и конфигурация - Служебные функции ### 📖 [Примеры использования](docs/examples.md) Практические примеры и сценарии использования: - Базовая сборка и публикация - Мультиплатформенная сборка - Оффлайн деплой - Работа с аргументами сборки - Отладка и мониторинг ### 💡 [Лучшие практики](docs/best-practices.md) Рекомендации по эффективному использованию: - Управление версиями - Безопасность - Оптимизация сборки - Мониторинг и логирование - Организация проекта ### 🐛 [Решение проблем](docs/troubleshooting.md) Диагностика и решение частых проблем: - Частые ошибки и их решения - Проблемы с памятью, сетью, правами доступа - Диагностические команды - Получение помощи ### ❓ [FAQ](docs/faq.md) Ответы на часто задаваемые вопросы: - Общие вопросы - Вопросы по 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/ # Временные файлы для оффлайн операций ``` ## 🚀 Быстрые команды ### Основные операции ```bash # Сборка образа 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 операции ```bash # Статус репозитория 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](LICENSE) для подробностей. ## 👨‍💻 Автор **Сергей Антропов** - Сайт: https://devops.org.ru - Email: devops@devops.org.ru ## 🙏 Благодарности - Сообществу Docker за отличные инструменты - GNU Make за мощную систему сборки - Ubuntu за стабильную базовую платформу ## 📞 Поддержка Если у вас есть вопросы или предложения: 1. Создайте [Issue](https://github.com/your-repo/issues) 2. Напишите на email: devops@devops.org.ru 3. Посетите сайт: https://devops.org.ru --- **⭐ Если проект был полезен, поставьте звезду!**