diff --git a/novopolcev_alexander_lab_1/1.png b/novopolcev_alexander_lab_1/1.png new file mode 100644 index 0000000..a5bf5d8 Binary files /dev/null and b/novopolcev_alexander_lab_1/1.png differ diff --git a/novopolcev_alexander_lab_1/README.md b/novopolcev_alexander_lab_1/README.md new file mode 100644 index 0000000..0294a52 --- /dev/null +++ b/novopolcev_alexander_lab_1/README.md @@ -0,0 +1,88 @@ +# Лабораторная работа №1 - Знакомство с docker и docker-compose + +## Задание: + +1. Установить средство контейнеризации docker. +2. Изучить применение и принципы docker. +3. Изучить утилиту docker-compose и структуру файла docker-compose.yml. +4. Развернуть не менее 3х различных сервисов при помощи docker-compose. + +Требования и docker-compose: + +* Несколько контейнеров. +* Хотя бы один volume. +* Хотя бы один порт, проброшенный на хост. + + +## Выполнение работы + +Были развернуты 3 сервиса через docker-compose: + +Предлагается развернуть не менее 3х сервисов через docker-compose из списка ниже: + +1. **redmine** + Система учёта багов, т.е. баг-трекер. +2. **wordpress** + Популярная система управления контентом. +3. **gitea** + Сервис для хранения репозиториев git, на котором работает этот репозиторий. + + +## Скрин запуска + +Панель консоли +![](1.png "") + +## Объяснение работы кода: + +## WordPress: + +1. Эта строка отвечает за образ сборки: + +image: wordpress:latest + +Используем последний официальный образ WordPress. + +2. Задание имени контейнера: + +container_name: wordpress + +Устанавливается имя контейнера как wordpress. + +3. Проброс портов: + +Порт 80 контейнера пробрасывается на порт 8080 хоста. + +4. Тома для хранения данных: + +volumes: + - wordpress_data:/var/www/html + +Том wordpress_data монтируется в директорию /var/www/html контейнера для хранения данных WordPress. + +5. Переменные окружения для WordPress: + +environment: + WORDPRESS_DB_HOST: db + WORDPRESS_DB_USER: example_user + WORDPRESS_DB_PASSWORD: example_password + WORDPRESS_DB_NAME: example_db + +Здесь задаются параметры для подключения к базе данных: + +WORDPRESS_DB_HOST: адрес базы данных (контейнер с именем db). +WORDPRESS_DB_USER: имя пользователя базы данных. +WORDPRESS_DB_PASSWORD: пароль пользователя базы данных. +WORDPRESS_DB_NAME: имя базы данных. + +6. Зависимость от базы данных: + +depends_on: db + +Указываем, что WordPress зависит от контейнера с базой данных (db), который должен запуститься первым. + +Остальные сервисы развернуты по аналогии. + +## Видео по ссылку: + +https://disk.yandex.ru/i/EVeX-9zD7H4Aog \ No newline at end of file diff --git a/novopolcev_alexander_lab_1/docker-compose.yml b/novopolcev_alexander_lab_1/docker-compose.yml new file mode 100644 index 0000000..caa0b4c --- /dev/null +++ b/novopolcev_alexander_lab_1/docker-compose.yml @@ -0,0 +1,52 @@ + +services: + wordpress: + image: wordpress:latest + container_name: wordpress + ports: + - "8080:80" + environment: + WORDPRESS_DB_HOST: db + WORDPRESS_DB_USER: example_user + WORDPRESS_DB_PASSWORD: example_password + WORDPRESS_DB_NAME: example_db + volumes: + - wordpress_data:/var/www/html + depends_on: + - db + + db: + image: mysql:5.7 + container_name: wordpress_db + environment: + MYSQL_DATABASE: example_db + MYSQL_USER: example_user + MYSQL_PASSWORD: example_password + MYSQL_ROOT_PASSWORD: root_password + volumes: + - db_data:/var/lib/mysql + + redmine: + image: redmine:latest + container_name: redmine + ports: + - "8081:3000" + volumes: + - redmine_data:/data + + gitea: + image: gitea/gitea:latest + container_name: gitea + ports: + - "8082:3000" + environment: + - USER_UID=1000 + - USER_GID=1000 + volumes: + - gitea_data:/data + +volumes: + wordpress_data: + db_data: + redmine_data: + gitea_data: