forked from Alexey/DAS_2024_1
137 lines
3.9 KiB
Markdown
137 lines
3.9 KiB
Markdown
|
# Лабораторная работа №1 - Знакомство с docker и docker-compose
|
|||
|
|
|||
|
## Задание
|
|||
|
|
|||
|
Нужно развернуть 3 сервиса в контейнерах docker через docker-compose.
|
|||
|
|
|||
|
Необходимые требования:
|
|||
|
|
|||
|
* Несколько контейнеров.
|
|||
|
* Хотя бы один volume.
|
|||
|
* Хотя бы один порт, проброшенный на хост.
|
|||
|
* Разворачивание системы должно пройти до конца.
|
|||
|
|
|||
|
## Запуск ЛР:
|
|||
|
|
|||
|
Введем в терминале команду:
|
|||
|
```
|
|||
|
docker-compose up -d
|
|||
|
```
|
|||
|
## Использованные сервисы:
|
|||
|
|
|||
|
1. ```db``` - база данные MySQL
|
|||
|
|
|||
|
2. ```redmine``` - Система учёта багов, т.е. баг-трекер.
|
|||
|
|
|||
|
3. ```mediawiki``` - движок вики
|
|||
|
|
|||
|
4. ```wordpress``` - платформа для управления контентом
|
|||
|
|
|||
|
## Описание программы:
|
|||
|
|
|||
|
Развернутые сервисы:
|
|||
|
|
|||
|
### wordpress
|
|||
|
|
|||
|
```
|
|||
|
wordpress: # Определение сервиса WordPress
|
|||
|
image: wordpress:latest # Используемый образ WordPress последней версии
|
|||
|
containername: wp_app # Имя контейнера
|
|||
|
restart: always
|
|||
|
ports: # Настройка портов
|
|||
|
- "8000:80"
|
|||
|
environment: # Переменные окружения
|
|||
|
WORDPRESSDBHOST: ${DBHOST}
|
|||
|
WORDPRESSDBUSER: ${DBUSER}
|
|||
|
WORDPRESSDBPASSWORD: ${DBPASSWORD}
|
|||
|
WORDPRESSDBNAME: ${DBNAME}
|
|||
|
WORDPRESSADMINUSER: admin
|
|||
|
WORDPRESSADMINPASSWORD: adminpassword
|
|||
|
WORDPRESSADMINEMAIL: admin@example.com
|
|||
|
volumes: # Настройка томов
|
|||
|
- wordpress_data:/var/www/html
|
|||
|
dependson: # Зависимости
|
|||
|
- db_wordpress # Зависит от сервиса MySQL
|
|||
|
|
|||
|
```
|
|||
|
Эта строка отвечает за образ сброки:
|
|||
|
```
|
|||
|
image: wordpress:latest
|
|||
|
```
|
|||
|
Задание имени контейнера:
|
|||
|
```
|
|||
|
containername: wp_app
|
|||
|
```
|
|||
|
Проброс портов:
|
|||
|
```
|
|||
|
ports:
|
|||
|
- 8000:80
|
|||
|
```
|
|||
|
Тома для хранения данных:
|
|||
|
```
|
|||
|
volumes:
|
|||
|
- wordpress_data:/var/www/html
|
|||
|
|
|||
|
```
|
|||
|
Переменные окружения
|
|||
|
```
|
|||
|
environment:
|
|||
|
WORDPRESSDBHOST: ${DBHOST}
|
|||
|
WORDPRESSDBUSER: ${DBUSER}
|
|||
|
WORDPRESSDBPASSWORD: ${DBPASSWORD}
|
|||
|
WORDPRESSDBNAME: ${DBNAME}
|
|||
|
WORDPRESSADMINUSER: admin
|
|||
|
WORDPRESSADMINPASSWORD: adminpassword
|
|||
|
WORDPRESSADMINEMAIL: admin@example.com
|
|||
|
|
|||
|
```
|
|||
|
Зависимости
|
|||
|
|
|||
|
```
|
|||
|
dependson:
|
|||
|
- db_wordpress
|
|||
|
|
|||
|
```
|
|||
|
Аналогично со другими сервисами:
|
|||
|
|
|||
|
### mediawiki
|
|||
|
|
|||
|
```
|
|||
|
mediawiki: # Определение сервиса MediaWiki
|
|||
|
image: mediawiki:1.35 # Используемый образ MediaWiki версии 1.35
|
|||
|
ports: # Настройка портов
|
|||
|
- "8080:80"
|
|||
|
containername: mediawiki # Имя контейнера
|
|||
|
volumes: # Настройка томов
|
|||
|
- mediawiki_data:/var/www/html/images mediawiki: # Определение сервиса MediaWiki
|
|||
|
image: mediawiki:1.35 # Используемый образ MediaWiki версии 1.35
|
|||
|
ports: # Настройка портов
|
|||
|
- "8080:80"
|
|||
|
containername: mediawiki # Имя контейнера
|
|||
|
volumes: # Настройка томов
|
|||
|
- mediawiki_data:/var/www/html/images
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
### redmine
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
redmine: # Определение сервиса Redmine
|
|||
|
image: redmine:latest # Используемый образ Redmine последней версии
|
|||
|
containername: redmine # Имя контейнера
|
|||
|
ports: # Настройка портов
|
|||
|
- "3000:3000"
|
|||
|
volumes: # Настройка томов
|
|||
|
- redmine_data:/usr/src/redmine/files
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
# Скрины работы программы:
|
|||
|
|
|||
|
Панель консоли
|
|||
|
![](lab_1.png "")
|
|||
|
|
|||
|
# Видео
|
|||
|
|
|||
|
https://vk.com/video230744264_456239102
|