diff --git a/afanasev_dmitry_lab_1/README.md b/afanasev_dmitry_lab_1/README.md new file mode 100644 index 0000000..258a0b8 --- /dev/null +++ b/afanasev_dmitry_lab_1/README.md @@ -0,0 +1,44 @@ +# Лабораторная работа 1 + +## Описание +Данная лабораторная работа предназначена для настройки 3 сервисов — **Gitea**, **Redmine** и БД **MySQL** — с использованием Docker Compose. **Gitea** — это лёгкая система контроля версий с веб-интерфейсом, а **Redmine** — система управления проектами и задачами, а также баг-трекер. **MySQL** — база данных, используемая Redmine для хранения данных. + +## Запуск проекта +1. Убедитесь, что у вас установлены **Docker** и **Docker Compose**. +2. Клонируйте репозиторий с данным проектом или создайте файл `docker-compose.yml` с конфигурацией, представленной там. +3. В командной строке перейдите в директорию с файлом `docker-compose.yml`. +4. Запустите команды: + ```bash + docker-compose up -d + ``` + Эта команда запустит контейнеры в фоновом режиме. +5. После запуска: + - Gitea будет доступен по адресу: [http://localhost:3000](http://localhost:3000) + - Redmine будет доступен по адресу: [http://localhost:8080](http://localhost:8080) + +## Конфигурация +В файле `docker-compose.yml` определены следующие сервисы: +- **Gitea**: + - Запускается из официального образа `gitea/gitea:latest`. + - Использует `SQLite` для хранения данных. + - Настроен на порту 3000 для веб-доступа и 2222 для SSH. +- **Redmine**: + - Запускается из официального образа `redmine`. + - Подключен к базе данных MySQL. + - Доступен на порту 8080. +- **MySQL**: + - Запускается из образа `mysql:8.0`. + - Используется Redmine для хранения данных. + - Настроен с дефолтными пользователем, базой и паролем. + +## Остановка проекта +Для остановки контейнеров запустите: +```bash +docker-compose down +``` +Это завершит работу всех контейнеров и освободит порты. + +## Примечания +- При необходимости вы можете изменить порты или другие параметры, отредактировав файл `docker-compose.yml`. +- Данные хранятся в именованных томах `gitea_data` и `db_data`, что позволяет сохранять данные при перезапуске контейнеров. +- Ссылка на демонстрацию работы программы: https://vk.com/video215756667_456239451?list=ln-AMZSRDejYptijuOt9u \ No newline at end of file diff --git a/afanasev_dmitry_lab_1/docker-compose.yml b/afanasev_dmitry_lab_1/docker-compose.yml new file mode 100644 index 0000000..c301d21 --- /dev/null +++ b/afanasev_dmitry_lab_1/docker-compose.yml @@ -0,0 +1,46 @@ +version: '3.9' # Версия Docker Compose + +services: + # Gitea сервис + gitea: + image: gitea/gitea:latest # Образ Gitea для запуска сервиса + container_name: gitea # Имя контейнера для удобства + environment: # Переменные среды + USER_UID: 1000 # UID пользователя внутри контейнера + USER_GID: 1000 # GID пользователя внутри контейнера + GITEA__database__DB_TYPE: sqlite3 # Тип бд (SQLite для простоты) + GITEA__database__PATH: /data/gitea/gitea.db # Путь к базе данных + GITEA__server__ROOT_URL: http://localhost:3000 # URL для доступа + GITEA__server__HTTP_PORT: 3000 # Порт для веб-интерфейса + volumes: + - gitea_data:/data # Монтирование директории данных для сохранения данных + ports: + - "3000:3000" # Порт для доступа к веб-интерфейсу Gitea + - "2222:22" # SSH порт для клонирования репозиториев + restart: always # Автоматический перезапуск контейнера в случае сбоя + + # Redmine сервис + redmine: + image: redmine # Образ Redmine для запуска сервиса + restart: always # Автоматический перезапуск контейнера + ports: + - 8080:3000 # Порт для доступа к веб-интерфейсу + environment: # Переменные среды + REDMINE_DB_MYSQL: db # Имя хоста бд для подключения + REDMINE_DB_PASSWORD: example # Пароль для подключения к базе данных + + # MySQL база данных для Redmine + db: + image: mysql:8.0 # Образ MySQL для бд + restart: always # Автоматический перезапуск контейнера + environment: # Переменные среды + MYSQL_ROOT_PASSWORD: example # Пароль пользователя root для MySQL + MYSQL_DATABASE: redmine # Имя бд для Redmine + MYSQL_USER: user # Пользователь MySQL + MYSQL_PASSWORD: password # Пароль для пользователя MySQL + volumes: + - db_data:/var/lib/mysql # Монтирование для сохранения данных бд + +volumes: # Именованные тома + gitea_data: # Том для данных Gitea + db_data: # Том для данных MySQL