137 lines
3.5 KiB
Markdown
137 lines
3.5 KiB
Markdown
|
# Лабораторная работа №1 - Знакомство с docker и docker-compose
|
|||
|
|
|||
|
## Задание
|
|||
|
|
|||
|
Разверните 3 сервиса на выбор в контейнерах docker с помощью docker-compose, учитывая следующие требования:
|
|||
|
|
|||
|
* Несколько контейнеров.
|
|||
|
* Хотя бы один volume.
|
|||
|
* Хотя бы один порт, проброшенный на хост.
|
|||
|
* Разворачивание системы должно пройти до конца.
|
|||
|
|
|||
|
## Запуск
|
|||
|
|
|||
|
Введение в терминале команды:
|
|||
|
```
|
|||
|
docker-compose up -d
|
|||
|
```
|
|||
|
|
|||
|
# Выбранные сервисы
|
|||
|
|
|||
|
1. ```mysql``` - система для создания БД
|
|||
|
|
|||
|
2. ```drupal``` - популярная система управления контентом
|
|||
|
|
|||
|
3. ```gitea``` - сервис для хранения репозиториев git, на котором работает этот репозиторий
|
|||
|
|
|||
|
4. ```wordpress``` - платформа для управления контентом
|
|||
|
|
|||
|
|
|||
|
## Описание работы:
|
|||
|
|
|||
|
Были развёрнуты следующие сервисы:
|
|||
|
|
|||
|
### Drupal
|
|||
|
|
|||
|
```
|
|||
|
drupal:
|
|||
|
depends_on:
|
|||
|
- mysql
|
|||
|
image: drupal
|
|||
|
container_name: my-drupal-container
|
|||
|
ports:
|
|||
|
- 8084:80
|
|||
|
volumes:
|
|||
|
- ./drupal-modules:/var/www/html/modules
|
|||
|
- ./drupal-profiles:/var/www/html/profiles
|
|||
|
- ./drupal-themes:/var/www/html/themes
|
|||
|
environment:
|
|||
|
- DRUPAL_DB_HOST=mysql
|
|||
|
- DRUPAL_DB_USER=wiki_user
|
|||
|
- DRUPAL_DB_PASSWORD=my_secret_password
|
|||
|
- DRUPAL_DB_NAME=my_wiki
|
|||
|
```
|
|||
|
|
|||
|
Этот код представляет собой часть файла конфигурации ```Docker Compose```, который используется для управления многоконтейнерными приложениями в Docker.
|
|||
|
|
|||
|
#### Объяснение работы кода:
|
|||
|
|
|||
|
Эта строка отвечает за образ сброки:
|
|||
|
```
|
|||
|
image: drupal
|
|||
|
```
|
|||
|
Задание имени контейнера:
|
|||
|
```
|
|||
|
container_name: my-drupal-container
|
|||
|
```
|
|||
|
Проброс портов:
|
|||
|
```
|
|||
|
ports:
|
|||
|
- 8084:80
|
|||
|
```
|
|||
|
Тома для хранения данных:
|
|||
|
```
|
|||
|
volumes:
|
|||
|
- ./drupal-modules:/var/www/html/modules
|
|||
|
- ./drupal-profiles:/var/www/html/profiles
|
|||
|
- ./drupal-themes:/var/www/html/themes
|
|||
|
|
|||
|
```
|
|||
|
Переменные окружения для Drupal
|
|||
|
```
|
|||
|
environment:
|
|||
|
- DRUPAL_DB_HOST=mysql
|
|||
|
- DRUPAL_DB_USER=wiki_user
|
|||
|
- DRUPAL_DB_PASSWORD=my_secret_password
|
|||
|
- DRUPAL_DB_NAME=my_wiki
|
|||
|
|
|||
|
```
|
|||
|
Аналогично со следующими сервисами:
|
|||
|
|
|||
|
### Gitea
|
|||
|
|
|||
|
```
|
|||
|
depends_on:
|
|||
|
- mysql
|
|||
|
image: gitea/gitea
|
|||
|
container_name: my-gitea-container
|
|||
|
ports:
|
|||
|
- 8085:3000
|
|||
|
volumes:
|
|||
|
- ./gitea:/data
|
|||
|
environment:
|
|||
|
- USER_UID=1000
|
|||
|
- USER_GID=1000
|
|||
|
- DB_TYPE=mysql
|
|||
|
- DB_HOST=mysql:3306
|
|||
|
- DB_NAME=my_wiki
|
|||
|
- DB_USER=wiki_user
|
|||
|
- DB_PASSWORD=my_secret_password
|
|||
|
- ROOT_URL=http://localhost:8085
|
|||
|
```
|
|||
|
|
|||
|
### Wordpress
|
|||
|
|
|||
|
```
|
|||
|
depends_on:
|
|||
|
- mysql
|
|||
|
image: wordpress
|
|||
|
container_name: my-wordpress-container
|
|||
|
ports:
|
|||
|
- 8086: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
|
|||
|
```
|
|||
|
# Скриншот работы
|
|||
|
Запущенный контейнер в Docker
|
|||
|
![](docker.png "")
|
|||
|
|
|||
|
# Youtube
|
|||
|
https://youtu.be/slOXP6pHBsM
|
|||
|
|