Merge pull request 'arutunyan_dmitry_lab_1 is ready' (#12) from arutunyan_dmitry_lab_1 into main
Reviewed-on: http://student.git.athene.tech/Alexey/DAS_2023_1/pulls/12
This commit is contained in:
commit
38b1290525
123
arutunyan_dmitry_lab_1/README.md
Normal file
123
arutunyan_dmitry_lab_1/README.md
Normal file
@ -0,0 +1,123 @@
|
||||
|
||||
## Лабораторная работа 1. Вариант 4.
|
||||
### Задание
|
||||
- Установить средство контейнеризации `docker`.
|
||||
- Изучить применение и принципы `docker`.
|
||||
- Изучить утилиту `docker-compose` и структуру файла `docker-compose.yaml`.
|
||||
- Развернуть не менее 3х различных сервисов при помощи `docker-compose`.
|
||||
|
||||
### Как запустить
|
||||
В директории с файлом характеристик `docker-compose.yaml` выполнить команду:
|
||||
```
|
||||
docker-compose -f docker-compose.yaml up
|
||||
```
|
||||
Это запустит `docker-compose`, который развернёт в общем контейнере 4 контейнера с сервисами по собранным образам.
|
||||
|
||||
### Раззворачиваемые сервисы
|
||||
- `mysql` - СУБД для создания БД, которую будут использовать другие сервисы,
|
||||
- `redmine` - открытая веб-платформа управления проектами и задачами,
|
||||
- `wordpress`- популярная платформа для управления контентом (CMS),
|
||||
- `mediawiki` - свободная и открытая вики-платформа, разработанная для создания и совместного редактирования веб-страниц.
|
||||
|
||||
### Описание работы
|
||||
Структура файла `docker-compose.yaml`:
|
||||
```yaml
|
||||
|_ version:
|
||||
|_ mainproperties:
|
||||
|_ services:
|
||||
|____ serivce1:
|
||||
|________ service1properties:
|
||||
|____ serivce2:
|
||||
|________ service2properties:
|
||||
```
|
||||
|
||||
#### Разворачивание сервиса MySQL
|
||||
Конфигурации сервиса в `docker-compose.yaml`:
|
||||
```yaml
|
||||
mysql:
|
||||
image: mysql
|
||||
container_name: my-mysql-container
|
||||
restart: always
|
||||
environment:
|
||||
MYSQL_DATABASE: my_wiki
|
||||
MYSQL_USER: wiki_user
|
||||
MYSQL_PASSWORD: my_secret_password
|
||||
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
|
||||
volumes:
|
||||
- ./data:/var/lib/mysql
|
||||
```
|
||||
Где `image` отвечает за образ сборки, `container_name` указывает имя контейнера, `restart` определяет сценарий перезапуска сервиса, `environment` описывает настройки окружения (в данном случае название БД, пользователя, пароль), `volumes` указывает локальные файлы, необходимые для переноса в сборочный контейнер.
|
||||
|
||||
#### Разворачивание сервиса Redmine
|
||||
Конфигурации сервиса в `docker-compose.yaml`:
|
||||
```yaml
|
||||
redmine:
|
||||
depends_on:
|
||||
- mysql
|
||||
image: redmine
|
||||
container_name: my-redmine-container
|
||||
ports:
|
||||
- 8081:3000
|
||||
volumes:
|
||||
- ./data:/usr/src/redmine/files
|
||||
environment:
|
||||
- REDMINE_DB_MYSQL=mysql
|
||||
- REDMINE_DB_DATABASE=my_wiki
|
||||
- REDMINE_DB_USERNAME=wiki_user
|
||||
- REDMINE_DB_PASSWORD=my_secret_password
|
||||
```
|
||||
Где `depends_on` указывает на перечень зависимых сервисов, после запуска которых данный сервис может быть запущен, `image` отвечает за образ сборки, `container_name` указывает имя контейнера, `ports` указывает порт, на котором сервис будет запущен внутри сети, `volumes` указывает локальные файлы, необходимые для переноса в сборочный контейнер, `environment` описывает настройки окружения (в данном случае хост БД, название БД, пользователя, пароль).
|
||||
|
||||
#### Разворачивание сервиса Wordpress
|
||||
Конфигурации сервиса в `docker-compose.yaml`:
|
||||
```yaml
|
||||
wordpress:
|
||||
depends_on:
|
||||
- mysql
|
||||
image: wordpress
|
||||
container_name: my-wordpress-container
|
||||
ports:
|
||||
- 8082:80
|
||||
volumes:
|
||||
- ./wp-content:/var/www/html/wp-content
|
||||
environment:
|
||||
- WORDPRESS_DB_HOST=mysql
|
||||
- WORDPRESS_DB_USER=wiki_user
|
||||
- WORDPRESS_DB_PASSWORD=my_secret_password
|
||||
- WORDPRESS_DB_NAME=my_wiki
|
||||
```
|
||||
Где `depends_on` указывает на перечень зависимых сервисов, после запуска которых данный сервис может быть запущен, `image` отвечает за образ сборки, `container_name` указывает имя контейнера, `ports` указывает порт, на котором сервис будет запущен внутри сети, `volumes` указывает локальные файлы, необходимые для переноса в сборочный контейнер, `environment` описывает настройки окружения (в данном случае хост БД, название БД, пользователя, пароль).
|
||||
|
||||
#### Разворачивание сервиса MediaWiki
|
||||
Конфигурации сервиса в `docker-compose.yaml`:
|
||||
```yaml
|
||||
mediawiki:
|
||||
depends_on:
|
||||
- mysql
|
||||
image: mediawiki
|
||||
container_name: my-mediawiki-container
|
||||
ports:
|
||||
- 8083:80
|
||||
restart: always
|
||||
environment:
|
||||
MW_INSTALL_PATH: /var/www/html
|
||||
MW_USE_INSTALLED: 'true'
|
||||
MW_ADMIN_NAME: admin
|
||||
MW_ADMIN_PASS: my_secret_password
|
||||
MW_DB_PORT: 3306
|
||||
MW_DB_HOST: mysql
|
||||
MW_DB_NAME: my_wiki
|
||||
MW_DB_USER: wiki_user
|
||||
MW_DB_PASS: my_secret_password
|
||||
volumes:
|
||||
- ./config:/var/www/html/config
|
||||
```
|
||||
Где `depends_on` указывает на перечень зависимых сервисов, после запуска которых данный сервис может быть запущен, `image` отвечает за образ сборки, `container_name` указывает имя контейнера, `ports` указывает порт, на котором сервис будет запущен внутри сети, `restart` определяет сценарий перезапуска сервиса, `environment` описывает настройки окружения (в данном случае путь установки, имя админа, порт БД, хост БД, название БД, пользователя, пароль), `volumes` указывает локальные файлы, необходимые для переноса в сборочный контейнер.
|
||||
|
||||
#### Запуск сервисов
|
||||
Выполнение команды docker-compose и log-журнал контейнеров:
|
||||
![](pic1.png "")
|
||||
![](pic2.png "")
|
||||
|
||||
### Видео
|
||||
https://youtu.be/Y7B9pzEn5Sc
|
64
arutunyan_dmitry_lab_1/docker-compose.yaml
Normal file
64
arutunyan_dmitry_lab_1/docker-compose.yaml
Normal file
@ -0,0 +1,64 @@
|
||||
version: "3"
|
||||
services:
|
||||
mysql:
|
||||
image: mysql
|
||||
container_name: my-mysql-container
|
||||
restart: always
|
||||
environment:
|
||||
MYSQL_DATABASE: my_wiki
|
||||
MYSQL_USER: wiki_user
|
||||
MYSQL_PASSWORD: my_secret_password
|
||||
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
|
||||
volumes:
|
||||
- ./data:/var/lib/mysql
|
||||
|
||||
redmine:
|
||||
depends_on:
|
||||
- mysql
|
||||
image: redmine
|
||||
container_name: my-redmine-container
|
||||
ports:
|
||||
- 8081:3000
|
||||
volumes:
|
||||
- ./data:/usr/src/redmine/files
|
||||
environment:
|
||||
- REDMINE_DB_MYSQL=mysql
|
||||
- REDMINE_DB_DATABASE=my_wiki
|
||||
- REDMINE_DB_USERNAME=wiki_user
|
||||
- REDMINE_DB_PASSWORD=my_secret_password
|
||||
|
||||
wordpress:
|
||||
depends_on:
|
||||
- mysql
|
||||
image: wordpress
|
||||
container_name: my-wordpress-container
|
||||
ports:
|
||||
- 8082:80
|
||||
volumes:
|
||||
- ./wp-content:/var/www/html/wp-content
|
||||
environment:
|
||||
- WORDPRESS_DB_HOST=mysql
|
||||
- WORDPRESS_DB_USER=wiki_user
|
||||
- WORDPRESS_DB_PASSWORD=my_secret_password
|
||||
- WORDPRESS_DB_NAME=my_wiki
|
||||
|
||||
mediawiki:
|
||||
depends_on:
|
||||
- mysql
|
||||
image: mediawiki
|
||||
container_name: my-mediawiki-container
|
||||
ports:
|
||||
- 8083:80
|
||||
restart: always
|
||||
environment:
|
||||
MW_INSTALL_PATH: /var/www/html
|
||||
MW_USE_INSTALLED: 'true'
|
||||
MW_ADMIN_NAME: admin
|
||||
MW_ADMIN_PASS: my_secret_password
|
||||
MW_DB_PORT: 3306
|
||||
MW_DB_HOST: mysql
|
||||
MW_DB_NAME: my_wiki
|
||||
MW_DB_USER: wiki_user
|
||||
MW_DB_PASS: my_secret_password
|
||||
volumes:
|
||||
- ./config:/var/www/html/config
|
BIN
arutunyan_dmitry_lab_1/pic1.png
Normal file
BIN
arutunyan_dmitry_lab_1/pic1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 MiB |
BIN
arutunyan_dmitry_lab_1/pic2.png
Normal file
BIN
arutunyan_dmitry_lab_1/pic2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 772 KiB |
Loading…
Reference in New Issue
Block a user