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 |