diff --git a/morozov_vladimir_lab_1/.gitignore b/morozov_vladimir_lab_1/.gitignore new file mode 100644 index 0000000..207b927 --- /dev/null +++ b/morozov_vladimir_lab_1/.gitignore @@ -0,0 +1 @@ +html/ \ No newline at end of file diff --git a/morozov_vladimir_lab_1/README.md b/morozov_vladimir_lab_1/README.md new file mode 100644 index 0000000..e11b6e1 --- /dev/null +++ b/morozov_vladimir_lab_1/README.md @@ -0,0 +1,35 @@ +# Лабораторная работа №1 - Знакомство с docker и docker-compose + +## Установка средства контейнеризации докер +Для работы с контейнерами и образами докера с официального сайта было скачено приложение Docker Desktop, которое представляет из себя инструмент с графической оболочкой. + +## Разворачиваемые сервисы +Для данной лабораторной работы были выбраны следующие сервисы: +- wordpress - сервис для создания контента +- gitea - система гит +- mysql - бд, которая будет использоваться для работы wordpress +- mediawiki - сервис вики + +## Описание файла docker-compose.yml +В папке проекта был создан файл `docker-compose.yml`, данный файл позволяет нам настроить наши контейнеры: выбрать образы, которые будут развернуты в контейнерах; назначить порты, через которые можно будет обращаться к контейнерам; создать и назначить тома и прочее. В самом файле все строки содержат комментарии, поясняющие для чего используется та или иная строка. + +## Запуск контейнеров +Для того, чтобы запустить все наши контейнеры нужно использовать команду: +`` +docker compose up --build +`` +Данная команда на основе файла `docker-compose.yml` создаст контейнеры, тома и прочее, если их ранее не было создано. Также данная команды скачает необходимые образы, если их ранее не было скачено или создано. + +Также приложение можно запустить через графическую оболочку + +## Остановка приложения +Остановить приложение можно через команду: +`` +docker compose down +`` + +Также приложение можно остановить через графическую оболочку + +## Работа приложения +Работа приложения представлена в [видео](https://disk.yandex.ru/i/824dXYpFrDs7Nw) + diff --git a/morozov_vladimir_lab_1/docker-compose.yml b/morozov_vladimir_lab_1/docker-compose.yml new file mode 100644 index 0000000..7cf86be --- /dev/null +++ b/morozov_vladimir_lab_1/docker-compose.yml @@ -0,0 +1,38 @@ +services: #объявляем наши сервисы + wp: #объявляем сервис для wordpress и теперь настраиваем его + image: "wordpress" # объявляем, что для данного сервиса нужен образ wordpress, который будет скачан с удаленного репозитория докера + restart: "on-failure" # устанавливаем настройку, которая будет перезагружать контейнер в случае возникновения ошибки при его работе + ports: # объявляем порты связывающие наш хост и контейнер, запись имеет вид порт_хоста : порт_контейнера + - "8000:80" # через порт 8000 хоста можно будет обращаться к порту 80 данного контейнера + environment: # назначаем переменные текущего контейнера + WORDPRESS_DB_HOST: wordpress_db #переменная бд + WORDPRESS_DB_USER: exampleuser #переменная пользователя бд + WORDPRESS_DB_PASSWORD: examplepass # переменная пароля пользлователя + WORDPRESS_DB_NAME: exampledb #переменная названия бд + volumes: #объявляем тома, которые будут использоваться в контейнере + - wordpress:/var/www/html #назначаем том wordpress + git: ##объявляем сервис для gitea и теперь настраиваем его + image: "gitea/gitea:1.22.3" # назначаем образ + restart: "on-failure" # устанавливаем настройку на перезагрузку контейнера в случае ошибки + environment: # назначаем переменные текущего контейнера + - USER_UID=1000 # переменная id пользователя + - USER_GID=1000 # переменная id группы пользователей + wordpress_db: #объявляем сервис бд для сервиса wordpress + image: "mysql:8.0" # назначаем в качестве образа образ mysql + restart: "always" # устанавливаем перезагрузку сервиса при любом окончании работы контейнера + environment: # назначаем переменные текущего контейнера + MYSQL_DATABASE: exampledb # переменна бд + MYSQL_USER: exampleuser # переменная пользователя бд + MYSQL_PASSWORD: examplepass # переменная пароля бд + MYSQL_RANDOM_ROOT_PASSWORD: '1' # переменная случайного пароля рут пользователя + volumes: # устанавливаем тома + - db:/var/lib/mysql # назначаем том бд + wiki: # объявляем сервис mediawiki + image: mediawiki # назначаем образ + volumes: # объявляем тома + - database:/var/www/data # объявляем том для бд + - ./html:/var/www/html:cached # объявляем еще том верстки +volumes: #объявляем тома, которые могут использоваться сразу несколькими сервисами + wordpress: #том для wordpress + db: # том для бд wordpress + database: # том для бд вики \ No newline at end of file