diff --git a/bondarenko_max_lab_1/.env b/bondarenko_max_lab_1/.env new file mode 100644 index 0000000..bffe90b --- /dev/null +++ b/bondarenko_max_lab_1/.env @@ -0,0 +1,20 @@ +# Database конфигурация +POSTGRES_DB=mediawiki +POSTGRES_USER=wikiuser +POSTGRES_PASSWORD=secret + +# MediaWiki конфигурация +MEDIAWIKI_DB_NAME=mediawiki +MEDIAWIKI_DB_USER=wikiuser +MEDIAWIKI_DB_PASSWORD=secret + +# WordPress конфигурация +WORDPRESS_DB_NAME=wordpress +WORDPRESS_DB_USER=wpuser +WORDPRESS_DB_PASSWORD=secret + +# Порты +MEDIAWIKI_PORT=8080 +WORDPRESS_PORT=8081 +GITEA_WEB_PORT=3000 +GITEA_SSH_PORT=222 diff --git a/bondarenko_max_lab_1/.gitignore b/bondarenko_max_lab_1/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/bondarenko_max_lab_1/README.md b/bondarenko_max_lab_1/README.md new file mode 100644 index 0000000..e81dd17 --- /dev/null +++ b/bondarenko_max_lab_1/README.md @@ -0,0 +1,20 @@ +# Лабораторная работа 1 - Знакомство с Docker и Docker Compose +### ПИбд-42 || Бондаренко Максим + +# Описание работы + +## Цель +Изучение современных технологий контейнеризации. + +## Задачи +1. Установка Docker Desktop. +2. Принципы Docker. +3. Изучение Docker Compose. +4. Разворачивание сервисов. +5. Оформление отчёта. + +## Ход выполнения работы + +## Инструкция по запуску + +## Видео демонстрация работы \ No newline at end of file diff --git a/bondarenko_max_lab_1/docker-compose.yml b/bondarenko_max_lab_1/docker-compose.yml new file mode 100644 index 0000000..6a3fb84 --- /dev/null +++ b/bondarenko_max_lab_1/docker-compose.yml @@ -0,0 +1,58 @@ +# Версия файла docker-compose, которую мы используем +version: '3.8' + +# Определение сервисов +# Все последующие готовые образы в services будут взяты с Docker Hub -> image: название:версия +# Далее в services будут использоваться переменные окружения из .env -> ${Переменная_среды} +# Схема пробросов портов -> ports: внешний порт на хосте:внутренний порт в контейнере +services: + db: + image: postgres:latest # Готовый образ postgres + environment: + - POSTGRES_DB=${POSTGRES_DB} # Имя БД + - POSTGRES_USER=${POSTGRES_USER} # Пользователь БД + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} # Пароль пользователя БД + volumes: + - db_data:/var/lib/postgresql/data # Монтирование volume для постоянного хранения данных БД + + mediawiki: + image: mediawiki:latest # Готовый образ mediawiki + ports: + - "${MEDIAWIKI_PORT}:80" # Проброс порта + volumes: + - mediawiki_data:/var/www/html # Монтирование volume для постоянного хранения данных + environment: + - MEDIAWIKI_DB_HOST=db # Хост БД + - MEDIAWIKI_DB_NAME=${MEDIAWIKI_DB_NAME} # Имя БД для MediaWiki + - MEDIAWIKI_DB_USER=${MEDIAWIKI_DB_USER} # Пользователь БД + - MEDIAWIKI_DB_PASSWORD=${MEDIAWIKI_DB_PASSWORD} # Пароль пользователя БД + + wordpress: + image: wordpress:latest # Готовый образ wordpress + ports: + - "${WORDPRESS_PORT}:80" # Проброс порта + volumes: + - wordpress_data:/var/www/html # Монтирование volume для постоянного хранения данных + environment: + - WORDPRESS_DB_HOST=db # Хост БД + - WORDPRESS_DB_NAME=${WORDPRESS_DB_NAME} # Имя БД для WordPress + - WORDPRESS_DB_USER=${WORDPRESS_DB_USER} # Пользователь БД + - WORDPRESS_DB_PASSWORD=${WORDPRESS_DB_PASSWORD} # Пароль пользователя БД + + gitea: + image: gitea/gitea:latest # Готовый образ gitea + ports: + - "${GITEA_WEB_PORT}:3000" # Проброс веб-порта + - "${GITEA_SSH_PORT}:22" # Проброс SSH-порта + volumes: + - gitea_data:/data # Монтирование volume для постоянного хранения данных + environment: + - USER_UID=1000 # UID пользователя внутри контейнера + - USER_GID=1000 # GID пользователя внутри контейнера + +# Определение volumes для хранения данных вне контейнеров +volumes: + mediawiki_data: + wordpress_data: + gitea_data: + db_data: