diff --git a/agliullov_daniyar_lab_1/docker-compose.yml b/agliullov_daniyar_lab_1/docker-compose.yml new file mode 100644 index 0000000..9ce1ae2 --- /dev/null +++ b/agliullov_daniyar_lab_1/docker-compose.yml @@ -0,0 +1,69 @@ +services: + wp_db: + + image: mariadb:10.6.4-focal + command: '--default-authentication-plugin=mysql_native_password' + volumes: + - wp_db_data:/var/lib/mysql + restart: always + environment: + - MYSQL_ROOT_PASSWORD=somewordpress + - MYSQL_DATABASE=wordpress + - MYSQL_USER=wordpress + - MYSQL_PASSWORD=wordpress + expose: + - 3306 + - 33060 + wordpress: + image: wordpress:latest + volumes: + - wp_data:/var/www/html + ports: + - 52384:80 + restart: always + environment: + - WORDPRESS_DB_HOST=wp_db + - WORDPRESS_DB_USER=wordpress + - WORDPRESS_DB_PASSWORD=wordpress + - WORDPRESS_DB_NAME=wordpress + + db: + image: postgres:latest + container_name: db + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: 1234 + POSTGRES_DB: postgres + volumes: + - db_data:/var/lib/postgresql + + redmine: + image: redmine:latest + container_name: redmine + ports: + - "11001:3000" + environment: + - REDMINE_DB_POSTGRESQL=db + - REDMINE_DB_DATABASE=redmine + - REDMINE_DB_USERNAME=posgres + - REDMINE_DB_PASSWORD=1234 + depends_on: + - db + + gitea: + image: gitea/gitea:latest + container_name: gitea + ports: + - "11002:3000" + environment: + - USER_UID=1000 + - USER_GID=1000 + volumes: + - gitea_data:/data + +volumes: + wp_db_data: + wp_data: + db_data: + redmine_db_data: + gitea_data: diff --git a/agliullov_daniyar_lab_1/readme.md b/agliullov_daniyar_lab_1/readme.md new file mode 100644 index 0000000..648e50f --- /dev/null +++ b/agliullov_daniyar_lab_1/readme.md @@ -0,0 +1,126 @@ +▎Лабораторная работа №1 - Знакомство с Docker и Docker Compose + +Цель: Изучение современных технологий контейнеризации. + +▎Задачи: + +1. Установить Docker. + +2. Изучить применение и принципы работы Docker. + +3. Изучить утилиту Docker Compose и структуру файла docker-compose.yml. + +4. Развернуть не менее трех различных сервисов с помощью Docker Compose. + +▎Разворачивание сервисов + +Необходимо развернуть минимум три сервиса из предложенного списка: + + +1. Redmine - система учета багов (баг-трекер). + +2. WordPress - популярная система управления контентом. + +3. Gitea - сервис для хранения git-репозиториев. + +▎Требования к Docker Compose: + +• Несколько контейнеров. + +• Хотя бы один volume. + +• Хотя бы один проброшенный порт на хост. + +Система должна быть развернута полностью, включая создание администратора и корректное функционирование, что будет подтверждено скриншотами. + +▎Ход работы + +1. Установил Docker Desktop на Windows. + +2. Проверил установку с помощью команды docker --version. + +3. Развернул сервисы (описаны ниже). + +▎Объяснение работы кода: + +▎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 + + Параметры для подключения к базе данных. + +6. Зависимость от базы данных: + depends_on: db - указывает, что WordPress зависит от контейнера базы данных (db). + +▎Redmine: + +1. Образ сборки: + image: redmine:latest - используется последний официальный образ Redmine. + + +2. Имя контейнера: + container_name: redmine - имя контейнера устанавливается как redmine. + + +3. Проброс портов: + ports:"8081:3000" - порт 3000 контейнера пробрасывается на порт 8081 хоста. + + +4. Переменные окружения для Redmine: + + environment: + REDMINE_DB_MYSQL: redmine_db + REDMINE_DB_USERNAME: redmine_user + REDMINE_DB_PASSWORD: redmine_password + + Параметры для подключения к базе данных. + +5. Зависимость от базы данных: + depends_on: - redmine_db - Redmine зависит от контейнера с базой данных. + +▎Gitea: + +1. Образ сборки: + image: gitea/gitea:latest - используется последний официальный образ Gitea. + + +2. Имя контейнера: + container_name: gitea - имя контейнера устанавливается как gitea. + + +3. Проброс портов: + ports:"8082:3000" - порт 3000 контейнера пробрасывается на порт 8082 хоста. + + +4. Тома для хранения данных: + + volumes: + - gitea_data:/data + +[Видео](https://disk.yandex.ru/d/JFWkukJKwbfhIw) \ No newline at end of file