pupkov_alexey_lab_1 is ready #163
92
pupkov_alexey_lab_1/README.md
Normal file
92
pupkov_alexey_lab_1/README.md
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
# Лабораторная работа №1 - Знакомство с docker и docker-compose
|
||||||
|
Цель: изучение современных технологий контейнеризации.
|
||||||
|
Задачи:
|
||||||
|
1. Установить средство контейнеризации docker.
|
||||||
|
2. Изучить применение и принципы docker.
|
||||||
|
3. Изучить утилиту docker-compose и структуру файла docker-compose.yml.
|
||||||
|
4. Развернуть не менее 3х различных сервисов при помощи docker-compose.
|
||||||
|
5. Оформить отчёт в формате Markdown и создать Pull Request в git-репозитории.
|
||||||
|
## Разворачивание сервисов
|
||||||
|
Предлагается развернуть не менее 3х сервисов через docker-compose из списка ниже:
|
||||||
|
1. mediawiki
|
||||||
|
Движок вики.
|
||||||
|
2. redmine
|
||||||
|
Система учёта багов, т.е. баг-трекер.
|
||||||
|
3. wordpress
|
||||||
|
Популярная система управления контентом.
|
||||||
|
4. drupal
|
||||||
|
Ещё одна популярная система управления контентом.
|
||||||
|
5. moodle
|
||||||
|
Система для обучения, на которой построена <https://lms.ulstu.ru>.
|
||||||
|
6. gitea
|
||||||
|
Сервис для хранения репозиториев git, на котором работает этот репозиторий.
|
||||||
|
Требования и docker-compose:
|
||||||
|
* Несколько контейнеров.
|
||||||
|
* Хотя бы один volume.
|
||||||
|
* Хотя бы один порт, проброшенный на хост.
|
||||||
|
При этом разворачивание системы должно пройти до конца.
|
||||||
|
Например, должен быть создан администратор и система должна корректно функционировать.
|
||||||
|
Это необходимо будет предоставить в отчёте, поэтому не забывайте делать скриншоты.
|
||||||
|
|
||||||
|
**Выбранные сервисы:**
|
||||||
|
1. mediawiki
|
||||||
|
2. wordpress
|
||||||
|
3. gitea
|
||||||
|
|
||||||
|
|
||||||
|
![image1.png](./image1.png)
|
||||||
|
|
||||||
|
### Объяснение кода:
|
||||||
|
1. Сеть
|
||||||
|
Создание сети: \
|
||||||
|
Определена сеть gitea для соединения контейнеров Gitea. \
|
||||||
|
external: false: Сеть создаётся автоматически и не является внешней.
|
||||||
|
|
||||||
|
2. Сервисы
|
||||||
|
MediaWiki \
|
||||||
|
Сервис mediawiki \
|
||||||
|
image: mediawiki: Используется официальный образ MediaWiki. \
|
||||||
|
restart: always: Контейнер будет автоматически перезапускаться при сбое. \
|
||||||
|
ports: - 1337:80: Перенаправление порта 80 контейнера на порт 1337 хоста. \
|
||||||
|
links: - mediawiki_database: Связь с контейнером mediawiki_database. \
|
||||||
|
volumes: - images:/var/www/html/images: Том для хранения загруженных изображений. \
|
||||||
|
|
||||||
|
3. Сервис mediawiki_database \
|
||||||
|
image: mariadb: Образ MariaDB для базы данных. \
|
||||||
|
environment: \
|
||||||
|
MYSQL_DATABASE: my_wiki: Создание базы данных с именем my_wiki. \
|
||||||
|
MYSQL_USER: wikiuser: Создание пользователя wikiuser. \
|
||||||
|
MYSQL_PASSWORD: example: Пароль для пользователя.
|
||||||
|
MYSQL_RANDOM_ROOT_PASSWORD: 'yes': Генерация случайного пароля для root. \
|
||||||
|
volumes: - mediawiki_db:/var/lib/mysql: Том для хранения данных базы.
|
||||||
|
|
||||||
|
4. WordPress \
|
||||||
|
Сервис wp_db (база данных WordPress) \
|
||||||
|
image: mariadb:10.6.4-focal: Версия образа MariaDB. \
|
||||||
|
command: Задаёт плагин аутентификации. \
|
||||||
|
volumes: - wp_db_data:/var/lib/mysql: Том для хранения данных базы. \
|
||||||
|
environment: \
|
||||||
|
MYSQL_ROOT_PASSWORD=somewordpress: Пароль для root. \
|
||||||
|
MYSQL_DATABASE=wordpress, MYSQL_USER=wordpress, MYSQL_PASSWORD=wordpress: Параметры базы данных. \
|
||||||
|
expose: - 3306 - 33060: Доступность портов для связи между контейнерами. \
|
||||||
|
5. Сервис wordpress \
|
||||||
|
image: wordpress:latest: Образ WordPress. \
|
||||||
|
volumes: - wp_data:/var/www/html: Том для данных сайта. \
|
||||||
|
ports: - 52384:80: Доступ к сайту через порт 52384. \
|
||||||
|
environment: Переменные для подключения к базе wp_db. \
|
||||||
|
6. Gitea \
|
||||||
|
Сервис server \
|
||||||
|
image: gitea/gitea:1.22.3: Образ Gitea версии 1.22.3. \
|
||||||
|
container_name: gitea: Имя контейнера. \
|
||||||
|
environment: Параметры UID и GID пользователя. \
|
||||||
|
networks: - gitea: Подключение к сети gitea. \
|
||||||
|
volumes: \
|
||||||
|
gitea:/gitea:/data: Том для данных. \
|
||||||
|
/etc/timezone:/etc/timezone:ro, /etc/localtime:/etc/localtime:ro: Синхронизация времени. \
|
||||||
|
ports: \
|
||||||
|
3000:3000: Веб-доступ через порт 3000. \
|
||||||
|
222:22: SSH доступ через порт 222. \
|
||||||
|
7. Тома \
|
||||||
|
Определены тома для хранения данных всех сервисов (images, mediawiki_db, wp_db_data, wp_data, gitea).
|
||||||
|
|
||||||
|
[Ссылка на демонстрацию работы программы](https://vk.com/video547368103_456239599?list=ln-1MGFZQHLn8gSM3rbLg )
|
81
pupkov_alexey_lab_1/docker-compose.yaml
Normal file
81
pupkov_alexey_lab_1/docker-compose.yaml
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
networks:
|
||||||
|
gitea:
|
||||||
|
external: false
|
||||||
|
|
||||||
|
services:
|
||||||
|
#mediawiki
|
||||||
|
mediawiki:
|
||||||
|
image: mediawiki
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 1337:80
|
||||||
|
links:
|
||||||
|
- mediawiki_database
|
||||||
|
volumes:
|
||||||
|
- images:/var/www/html/images
|
||||||
|
|
||||||
|
mediawiki_database:
|
||||||
|
image: mariadb
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- MYSQL_DATABASE=mywiki
|
||||||
|
- MYSQL_USER=mywiki
|
||||||
|
- MYSQL_PASSWORD=mywiki
|
||||||
|
- MYSQL_ROOT_PASSWORD=root
|
||||||
|
volumes:
|
||||||
|
- mediawiki_db:/var/lib/mysql
|
||||||
|
|
||||||
|
#wordpress
|
||||||
|
wp_db:
|
||||||
|
|
||||||
|
image: mariadb:10.6.4-focal
|
||||||
|
command: '--default-authentication-plugin=mysql_native_password'
|
||||||
|
volumes:
|
||||||
|
- wp_db_data:/var/lib/mysql
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- MYSQL_ROOT_PASSWORD=somewordpress
|
||||||
|
- MYSQL_DATABASE=wordpress
|
||||||
|
- MYSQL_USER=wordpress
|
||||||
|
- MYSQL_PASSWORD=wordpress
|
||||||
|
expose:
|
||||||
|
- 3306
|
||||||
|
- 33060
|
||||||
|
wordpress:
|
||||||
|
image: wordpress:latest
|
||||||
|
volumes:
|
||||||
|
- wp_data:/var/www/html
|
||||||
|
ports:
|
||||||
|
- 52384:80
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- WORDPRESS_DB_HOST=wp_db
|
||||||
|
- WORDPRESS_DB_USER=wordpress
|
||||||
|
- WORDPRESS_DB_PASSWORD=wordpress
|
||||||
|
- WORDPRESS_DB_NAME=wordpress
|
||||||
|
|
||||||
|
#gitea
|
||||||
|
server:
|
||||||
|
image: gitea/gitea:1.22.3
|
||||||
|
container_name: gitea
|
||||||
|
environment:
|
||||||
|
- USER_UID=1000
|
||||||
|
- USER_GID=1000
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- gitea
|
||||||
|
volumes:
|
||||||
|
- gitea:/gitea:/data
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
- "222:22"
|
||||||
|
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
images:
|
||||||
|
mediawiki_db:
|
||||||
|
wp_db_data:
|
||||||
|
wp_data:
|
||||||
|
gitea:
|
BIN
pupkov_alexey_lab_1/image1.png
Normal file
BIN
pupkov_alexey_lab_1/image1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 204 KiB |
Loading…
Reference in New Issue
Block a user