Merge pull request 'vaksman_valerya_lab_1' (#5) from vaksman_valerya_lab_1 into main

Reviewed-on: Alexey/DAS_2024_1#5
This commit is contained in:
Alexey 2024-09-17 14:52:42 +04:00
commit 46b8ecfc54
5 changed files with 200 additions and 0 deletions

View File

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

View File

@ -0,0 +1 @@
mediawiki_data/

BIN
vaksman_valerya_lab_1/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

View File

@ -0,0 +1,129 @@
# Лабораторная работа №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

@ -0,0 +1,66 @@
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: {}