Compare commits

..

1 Commits

7 changed files with 117 additions and 200 deletions

View File

@@ -0,0 +1,59 @@
# Лабораторная работа номер 1
> Здравствуйте меня зовут Балахонов Данила группа ПИбд-42
>
> *— Балахонов Данила ПИбд-42*
Видео лабораторной работы номер 1 доступно по этой [ссылке](https://drive.google.com/file/d/1Up_JzDcK_TjYLixpfYXN7PhJmOeg_Uck/view?usp=sharing).
## Как запустить лабораторную работу номер 1?
### Необходимые компоненты для запуска лабораторной работы номер 1
> Здесь рассказана установка необходимых компонентов для запуска лабораторной работы номер 1 под дистрибутив GNU/Linux **Ubuntu**.
Для запуска лабораторной работы номер 1 необходимы такие компоненты:
- Git
- Docker
- Docker compose
Чтобы установить **Git**, необходимо ввести данные команды в командную строку:
``` bash
sudo apt-get update
sudo apt-get install git
```
Чтобы установить **Docker** и **Docker compose**, стоит ввести такие команды:
``` bash
# Настройка репозитория Docker
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Установка Docker и его компонентов
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
### Запуск лабораторной работы номер 1
Для запуска лабораторной работы номер 1 необходимо **склонировать** репозиторий в любую папку и **перейти на ветку** balakhonov_danila_lab_1.
Далее в папке с `docker-compose.yaml` нужно вызвать такую команду:
``` bash
sudo docker-compose up -d
```
Таким образом будут запущены контейнеры в фоновом режиме.
## Какие технологии были использованы?
Для выполнения лабораторной работы номер 1 использовались такие технологии, как: *git*, *docker*, *docker compose*.
Сервисы, выбранные для запуска в docker-compose файле:
- *Gitea* - удобный сервис отслеживания версий разрабатываемого ПО
- *MediaWiki* - сервис создания и ведения электронной энциклопедии
- *PostgreSQL* - база данных, используемая сервисами выше
Системой, на которую были установлены указанные технологии, является Ubuntu 22.
## Что делает лабораторная работа номер 1?
Лабораторная работа номер 1 заключается в написании docker-compose файла для удобного запуска и администрирования сразу нескольких сервисов в docker-контейнерах.

View File

@@ -0,0 +1,58 @@
services:
# PostgreSQL
db:
# Образ контейнера PostgreSQL последней версии
image: postgres
# Название контейнера
container_name: db
# Переменные окружения для настройки базы данных
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
# Настройка корневого каталога, где хранятся данные
# Слева указан каталог компьютера, справа - каталог контейнера
# Нужно для сохранения данных на сервере после отключения контейнера
volumes:
- ./postgres:/var/lib/postgresql/data
# Порт, через который можно будет подключиться к базе данных
ports:
- 5432:5432
# После перезапуска докера всегда запускать этот контейнер
restart: always
# Gitea
gitea:
# Используется Gitea последней версии
image: gitea/gitea
container_name: gitea
# После перезапуска докера всегда запускать этот контейнер
restart: always
volumes:
- ./data:/var/lib/gitea
- ./config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- 3000:3000
- 2222:2222
environment:
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
# Указывается, что этот контейнер запускается только после запуска контейнера db
depends_on:
- db
# MediaWiki
mediawiki:
# Образ контейнера MediaWiki последней версии
image: mediawiki
container_name: mediawiki
restart: always
ports:
- 8080:80
links:
- db
volumes:
- ./images:/var/www/html/images

View File

@@ -1,4 +0,0 @@
DB_HOST = db
DB_USER = wordpress
DB_PASSWORD = wordpress
DB_NAME = wordpress

View File

@@ -1 +0,0 @@
mediawiki_data/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

View File

@@ -1,129 +0,0 @@
# Лабораторная работа №1 - Знакомство с docker и docker-compose
## Задание
Разверните 3 сервиса на выбор в контейнерах docker с помощью docker-compose, учитывая следующие требования:
* Несколько контейнеров.
* Хотя бы один volume.
* Хотя бы один порт, проброшенный на хост.
* Разворачивание системы должно пройти до конца.
## Запуск
Введение в терминале команды:
```
docker-compose up -d
```
# Выбранные сервисы
 1. ```db``` - самая новая версия БД MaraiDB
 2. ```phpmyadmin``` - система управления базой данных
 3. ```mediawiki``` - движок вики
 4. ```wordpress``` - платформа для управления контентом
## Описание работы:
Были развёрнуты следующие сервисы:
### phpmyadmin
```
phpmyadmin:
depends_on:
- db
image: phpmyadmin
hostname: php_my_admin
container_name: php_my_admin
volumes: # см. конец файла
- php_my_admin_data:/var/www/html
ports:
- 8080:80
restart: always
environment:
PMA_ARBITRARY: 1
TZ: "Europe/Moscow"
PMA_HOST: ${DB_HOST}
PMA_USER : ${DB_USER}
PMA_PASSWORD : ${DB_PASSWORD}
```
Этот код представляет собой часть файла конфигурации ```Docker Compose```, который используется для управления многоконтейнерными приложениями в Docker.
#### Объяснение работы кода:
Эта строка отвечает за образ сброки:
```
image: phpmyadmin
```
Задание имени контейнера:
```
container_name: php_my_admin
```
Проброс портов:
```
ports:
- 8080:80
```
Тома для хранения данных:
```
volumes:
- .php_my_admin_data:/var/www/html
```
Переменные окружения для Drupal
```
environment:
PMA_ARBITRARY: 1
TZ: "Europe/Moscow"
PMA_HOST: ${DB_HOST}
PMA_USER : ${DB_USER}
PMA_PASSWORD : ${DB_PASSWORD}
```
Аналогично со другими сервисами:
### mediawiki
```
image: mediawiki:latest # образ MediaWiki
container_name: mediawiki_app
volumes: # см. конец файла
- ./mediawiki_data:/var/www/html/mediawiki
ports:
- "8088:80"
restart: always
```
### Wordpress
```
depends_on:
- db
image: wordpress:latest
hostname: wp_app
container_name: wp_app
volumes: # см. конец файла
- wordpress_data:/var/www/html
ports:
- "8000:80"
restart: always
user: www-data
environment: # секция настроек для подключения wordpress к БД
TZ: "Europe/Moscow"
WORDPRESS_DB_HOST: ${DB_HOST}
WORDPRESS_DB_USER: ${DB_USER}
WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
WORDPRESS_DB_NAME: ${DB_NAME}
```
# Скриншот работы
Панель консоли
![](1.png "")
# ВК
https://vk.com/video256017065_456239870?list=ln-qWUdZke5z53x940ZHv

View File

@@ -1,66 +0,0 @@
services:
db: # контейнер базы данных
image: mariadb:latest # самая свежая версия MySql
hostname: wp_database # хост контейнера внутри стистемы докер
container_name: wp_database # имя контейнера с системе docker
volumes: # см. конец файла
- db_data:/var/lib/mysql
restart: always
environment: # cекция настроек для БД
TZ: "Europe/Moscow"
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: ${DB_NAME}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
phpmyadmin: # СУБД для БД
depends_on: # запускаем после MySql
- db
image: phpmyadmin # скачиваем уже существующие образы для построения и запуска наших контейнеров
hostname: php_my_admin
container_name: php_my_admin
volumes: # см. конец файла
- php_my_admin_data:/var/www/html
ports:
- 8080:80
restart: always
environment:
PMA_ARBITRARY: 1 # разрешение на подключения к любому серверу
TZ: "Europe/Moscow"
PMA_HOST: ${DB_HOST} # сразу заходим под нашими паролями и учёткой
PMA_USER : ${DB_USER}
PMA_PASSWORD : ${DB_PASSWORD}
wordpress: # контейнер wordpress
depends_on: # запускаем после MySql
- db
image: wordpress:latest # самая свежая версия MySql
hostname: wp_app
container_name: wp_app
volumes: # см. конец файла
- wordpress_data:/var/www/html
ports:
- "8000:80"
restart: always
user: www-data
environment: # секция настроек для подключения wordpress к БД
TZ: "Europe/Moscow"
WORDPRESS_DB_HOST: ${DB_HOST}
WORDPRESS_DB_USER: ${DB_USER}
WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
WORDPRESS_DB_NAME: ${DB_NAME}
mediawiki: # контейнер mediawiki
image: mediawiki:latest # образ MediaWiki
container_name: mediawiki_app
volumes: # см. конец файла
- ./mediawiki_data:/var/www/html/mediawiki
ports:
- "8088:80"
restart: always
volumes: # для локального хранения сессионных данных из работы контейнеров
db_data: {}
wordpress_data: {}
php_my_admin_data: {}
mediawiki: {}