210 lines
7.9 KiB
Markdown
210 lines
7.9 KiB
Markdown
# Universal Docker Management Project
|
||
|
||
[](https://opensource.org/licenses/MIT)
|
||
[](https://www.docker.com/)
|
||
[](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
|
||
|
||
---
|
||
|
||
**⭐ Если проект был полезен, поставьте звезду!** |