forked from Alexey/DAS_2024_1
Compare commits
17 Commits
dozorova_a
...
mochalov_d
| Author | SHA1 | Date | |
|---|---|---|---|
| 891eae4211 | |||
| f980a74f5e | |||
| e10ae36577 | |||
| 46b8ecfc54 | |||
| 262193a301 | |||
| 48711e14e3 | |||
| 39664ac3a1 | |||
| 7af877c37a | |||
| 7d2ae7430d | |||
| ec21e89033 | |||
| afddfcf91f | |||
| 9b0cb3582d | |||
| 37080832d5 | |||
| 39fdc511ee | |||
| 2714d4e718 | |||
| b8a59b4932 | |||
| e6dcbeb800 |
6
.idea/.gitignore
generated
vendored
Normal file
6
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
/DAS_2024_1.iml
|
||||
/modules.xml
|
||||
/vcs.xml
|
||||
61
borschevskaya_anna_lab_1/README.md
Normal file
61
borschevskaya_anna_lab_1/README.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# Отчет. Лабораторная работа 1
|
||||
|
||||
В рамках лабораторной работы с помощью технологии контейнеризации docker были развернуты сервисы:
|
||||
- Redmine - система баг-трекинга
|
||||
- Postgres - СУБД
|
||||
- RabbitMQ - брокер сообщений
|
||||
|
||||
## Описание
|
||||
В docker-compose.yml файле описаны настройки для запуска трех выбранных сервисов в контейнерах. Для большинства строк файла оставлены
|
||||
комментарии, объясняющие содержимое файла.
|
||||
|
||||
Стоит отметить, для сервиса Redmine было принято решение в качестве сервера баз данных не использовать базу данных по умолчанию - SQLite,
|
||||
а поднять внешний сервер баз данных Postgres, который был запущен в рамках этого же файла docker-compose.yml.
|
||||
|
||||
Для того, чтобы при старте postgres уже была создана база данных для Redmine, а также пользователь, под учетной записью
|
||||
которого будет работать Redmine, был написан скрипт init-database.sh с использованием bash и sql:
|
||||
```
|
||||
# Создаем пользователя redmine и БД redminedb
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
CREATE USER redmine WITH PASSWORD 'redmine-password';
|
||||
CREATE DATABASE redminedb;
|
||||
GRANT ALL PRIVILEGES ON DATABASE redminedb TO redmine;
|
||||
EOSQL
|
||||
|
||||
# Даем права на схему public
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USERNAME" -d redminedb <<-EOSQL
|
||||
ALTER SCHEMA public OWNER TO redmine;
|
||||
GRANT ALL ON SCHEMA public TO redmine;
|
||||
EOSQL
|
||||
```
|
||||
|
||||
Этот скрипт монтируется в директорию контейнера postgres ``docker-entrypoint-initdb.d``, которая является специальной точкой входа
|
||||
для инициализации БД и содержит соответствующие скрипты.
|
||||
|
||||
## Как запустить
|
||||
Для того, чтобы запустить сервисы, необходимо выполнить следующие действия:
|
||||
1. Установить и запустить Docker Engine или Docker Desktop (включает в себя Docker Engine и предоставляет UI)
|
||||
2. Через консоль перейти в папку, в которой расположен файл docker-compose.yml
|
||||
3. Выполнить команду:
|
||||
```
|
||||
docker compose up -d
|
||||
```
|
||||
В случае успешного запуска всех контейнеров в консоли будет выведено следующее сообщение:
|
||||
```
|
||||
[+] Running 3/3
|
||||
✔ Container rabbitmq Started 0.8s
|
||||
✔ Container redmine Started 1.2s
|
||||
✔ Container postgres Started 0.5s
|
||||
```
|
||||
Также будет создана папка postgres_data, которая монтируется в контейнере postgres
|
||||
|
||||
Мы также можем увидеть статус всех запущенных контейнеров, если выполним команду:
|
||||
```
|
||||
docker ps
|
||||
```
|
||||
Или обратившись к логам каждого из контейнеров:
|
||||
``
|
||||
docker logs <container_name>
|
||||
``
|
||||
## Видео-отчет
|
||||
Работоспособность лабораторной работы можно оценить в следующем [видео](https://disk.yandex.ru/d/15QhUl3KQYSavA).
|
||||
34
borschevskaya_anna_lab_1/docker-compose.yml
Normal file
34
borschevskaya_anna_lab_1/docker-compose.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:latest # название и версия образа docker
|
||||
container_name: postgres # название контейнера
|
||||
environment: # блок переменных окружения, которые будут использованы для запуска и настройки
|
||||
POSTGRES_USERNAME: postgres # имя пользователя супер-пользователя СУБД
|
||||
POSTGRES_PASSWORD: postgres-admin # имя пользователя супер-пользователя СУБД
|
||||
PGDATA: "/var/lib/postgresql/data/pgdata" # путь к директории, где Postgres будет хранить свои данные.
|
||||
ports:
|
||||
- "5432:5432" # пробрасываем стандартный порт для доступа к postgres
|
||||
volumes:
|
||||
- ./postgres_data:/var/lib/postgresql/data/ # монтируем локальную директорию в директорию внутри контейнера с данными базы данных
|
||||
- ./init-database.sh:/docker-entrypoint-initdb.d/init-database.sh # Монтирует скрипт инициализации базы данных в специальную директорию внутри контейнера.
|
||||
redmine:
|
||||
image: redmine
|
||||
container_name: redmine
|
||||
ports:
|
||||
- "8080:3000"
|
||||
environment:
|
||||
REDMINE_DB_POSTGRES: postgres # хост, на котором расположена база данных Postgres
|
||||
REDMINE_DB_USERNAME: redmine # имя пользователя для подключения к базе данных Redmine
|
||||
REDMINE_DB_DATABASE: redminedb # база данных, к которой будет подключаться Redmine
|
||||
REDMINE_DB_PASSWORD: redmine-password # пароль, который будет использоваться для подключения
|
||||
depends_on: # обозначаем зависимость запуска сервиса redmine от запуска сервиса postgres
|
||||
- postgres
|
||||
rabbitmq:
|
||||
container_name: rabbitmq
|
||||
image: rabbitmq:3-management
|
||||
environment:
|
||||
RABBITMQ_DEFAULT_USER: rabbit # переопределяем значения имя для пользователя, который создается по умолчанию
|
||||
RABBITMQ_DEFAULT_PASS: rabbit-password # переопределяем значения пароля для пользователя, который создается по умолчанию
|
||||
ports:
|
||||
- "15672:15672" # порт для доступа к веб-интерфейсу
|
||||
- "5672:5672" # порт для доступа через протокол AMQP к брокеру сообщений
|
||||
15
borschevskaya_anna_lab_1/init-database.sh
Normal file
15
borschevskaya_anna_lab_1/init-database.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Создаем пользователя redmine и БД redminedb
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
CREATE USER redmine WITH PASSWORD 'redmine-password';
|
||||
CREATE DATABASE redminedb;
|
||||
GRANT ALL PRIVILEGES ON DATABASE redminedb TO redmine;
|
||||
EOSQL
|
||||
|
||||
# Даем права на схему public
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USERNAME" -d redminedb <<-EOSQL
|
||||
ALTER SCHEMA public OWNER TO redmine;
|
||||
GRANT ALL ON SCHEMA public TO redmine;
|
||||
EOSQL
|
||||
33
emelyanov_artem_lab_1/README.md
Normal file
33
emelyanov_artem_lab_1/README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Docker Compose: PostgreSQL, RabbitMQ, Nginx
|
||||
|
||||
## Описание проекта
|
||||
|
||||
Этот проект разворачивает три сервиса с помощью Docker Compose:
|
||||
1. **PostgreSQL** — реляционная база данных.
|
||||
2. **RabbitMQ** — брокер сообщений с панелью управления.
|
||||
3. **Nginx** — веб-сервер и реверс-прокси.
|
||||
|
||||
|
||||
## Команды для запуска
|
||||
|
||||
Чтобы развернуть и запустить проект, выполните следующие шаги:
|
||||
1. Убедитесь, что у вас установлен Docker и Docker Compose.
|
||||
2. Перейдите в директорию с файлом docker-compose.yml.
|
||||
3. Запустите сервисы командой: docker-compose up --build
|
||||
|
||||
## Сервисы и порты
|
||||
1. **PostgreSQL:**
|
||||
**Порт:** 5432
|
||||
**Доступ:** Локально, через любые приложения, подключающиеся к базе данных PostgreSQL.
|
||||
|
||||
|
||||
2. **RabbitMQ:**
|
||||
**Порт для приложений:** 5672
|
||||
**Панель управления RabbitMQ:** Доступна по адресу [http://localhost:15672/](http://localhost:15672/) (логин: `user`, пароль: `password`).
|
||||
|
||||
|
||||
3. **Nginx:**
|
||||
**Порт:** 80
|
||||
**Назначение:** Используется как реверс-прокси для распределения трафика.
|
||||
|
||||
## Видео https://drive.google.com/file/d/1qzc_IFZBFkUVGJ97bkcsKpbwn8pw3Hay/view
|
||||
34
emelyanov_artem_lab_1/docker-compose.yml
Normal file
34
emelyanov_artem_lab_1/docker-compose.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
# База данных PostgreSQL
|
||||
postgres:
|
||||
image: postgres:15
|
||||
container_name: postgres-db
|
||||
environment:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_DB: mydb
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
# RabbitMQ
|
||||
rabbitmq:
|
||||
image: rabbitmq:3-management
|
||||
container_name: rabbitmq
|
||||
environment:
|
||||
RABBITMQ_DEFAULT_USER: user
|
||||
RABBITMQ_DEFAULT_PASS: password
|
||||
ports:
|
||||
- "5672:5672" # для приложений
|
||||
- "15672:15672" # для панели управления
|
||||
|
||||
# Nginx для реверс-прокси (если нужно для других сервисов)
|
||||
nginx:
|
||||
image: nginx:latest
|
||||
container_name: nginx
|
||||
ports:
|
||||
- "80:80"
|
||||
depends_on:
|
||||
- rabbitmq
|
||||
|
||||
14
kuzarin_maxim_lab_1/.env
Normal file
14
kuzarin_maxim_lab_1/.env
Normal file
@@ -0,0 +1,14 @@
|
||||
# Переменные для базы данных
|
||||
POSTGRES_TAG=latest # Берём последнююю версию postgres. Пока это не принципиально
|
||||
POSTGRES_DATA_DIR=./postgres-data
|
||||
POSTGRES_PASSWORD=postgres_password
|
||||
|
||||
# Переменные для Web gui для БД
|
||||
DB_GUI_IMAGE=adminer # Самый легковесный Web gui для postgres(и не только)
|
||||
DB_GUI_CONTEINER_PORT=8080
|
||||
|
||||
# Переменные для брокера сообщения RabbitMQ
|
||||
RABBIT_TAG=3.10.7-management # Тут есть встроенный Web интерфейс
|
||||
RABBIT_DATA_DIR=./rabbit-data
|
||||
RABBIT_USERNAME=user
|
||||
RABBIT_PASSWORD=password
|
||||
2
kuzarin_maxim_lab_1/.gitignore
vendored
Normal file
2
kuzarin_maxim_lab_1/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
postgres-data/
|
||||
rabbit-data/
|
||||
27
kuzarin_maxim_lab_1/README.md
Normal file
27
kuzarin_maxim_lab_1/README.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# Лабораторная работа 1
|
||||
Данная работа посвящена работе с docker compose и поднятию сервисов, необходимых для последующего выполнения работ.
|
||||
## Описание
|
||||
В качестве сервисов были выбраны:
|
||||
- СУБД - Postgres
|
||||
- Web интерфейс для БД Postgres - Adminer
|
||||
- Брокер сообщений - RabbitMQ (+ Web интерфейс)
|
||||
## Запуск
|
||||
Для запуска лабораторной работы необходимо иметь запущенный движок Docker на устройстве.
|
||||
Необходимо перейти в папку, где располагается данный файл. Далее открыть терминал и ввести команду:
|
||||
```
|
||||
docker compose up -d
|
||||
```
|
||||
В данном случае флаг `-d` не обязателен. Он лишь позволит оставить консоль интерактивной (запускает все контейнеры в фоновом режиме).
|
||||
В случае, если в консоли отобразился подобный текст и появилась возможность вводить команды - сервисы успешно запущены.
|
||||
```
|
||||
[+] Running 4/4
|
||||
✔ Network kuzarin_maxim_lab_1_default Created 0.0s
|
||||
✔ Container kuzarin_maxim_lab_1-db-1 Started 0.7s
|
||||
✔ Container kuzarin_maxim_lab_1-rabbit-1 Started 0.7s
|
||||
✔ Container kuzarin_maxim_lab_1-db_web_gui-1 Started 0.7s
|
||||
```
|
||||
## Описание compose файла
|
||||
В docker-compose файле все уникальные строчки помечены комментариями. Они описывают их предназначения, и иногда обосновывают принятые решения.
|
||||
Так же комментарии присутствуют в файле .env, где хранятся переменные среды, нужные для работы compose файла.
|
||||
## Видео демонстрация
|
||||
Был записан видеоролик, демонстрирующий процесс запуска и работы сервисов. Он расположен по [адресу](https://drive.google.com/file/d/1ouUc-3eYhaJIR0HhD4b_Lj73oxEqORpA/view?usp=sharing)
|
||||
31
kuzarin_maxim_lab_1/docker-compose.yml
Normal file
31
kuzarin_maxim_lab_1/docker-compose.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
services:
|
||||
db: # База данных
|
||||
image: postgres:${POSTGRES_TAG} # Берём тег образа из переменной среды
|
||||
restart: always # Автоматический перезапуск контейнера, если он упал
|
||||
ports: # проброс портов
|
||||
- 5432:5432 # Так как на хосте нет postgres, порт по умолчанию можно использовать свободно
|
||||
volumes: # Указываем проброс папок
|
||||
- ${POSTGRES_DATA_DIR}:/var/lib/postgresql/data # Данные postgres хранятся в /var/lib/postgresql/data.
|
||||
# А на хосте монтируем туда, куда указано в переменной
|
||||
environment: # Указываем переменные среды
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} # Пароль от учётки postgres берём из переменных среды
|
||||
|
||||
db_web_gui: # Интерфейс для доступа к БД (на компе нет PgAdmin)
|
||||
image: ${DB_GUI_IMAGE} # Их есть много разных, так что имя образа из env
|
||||
restart: always
|
||||
ports:
|
||||
- 8080:${DB_GUI_CONTEINER_PORT} # Так как Web GUI разные, то и порт может быть разный. Берём из env
|
||||
|
||||
rabbit: # Rabbit тоже понадобится в будущем
|
||||
image: rabbitmq:${RABBIT_TAG} # Определяем тегом версию
|
||||
restart: always
|
||||
ports:
|
||||
- 5672:5672 # Это порт доступа к брокеру (если буду разрабатывать на локале)
|
||||
- 8081:15672 # А это порт для Web GUI. Для удобста на хосте это 8081, близко к БД
|
||||
volumes:
|
||||
- ${RABBIT_DATA_DIR}:/var/lib/rabbitmq # У Rabbit так же можно пробросить папку, чтобы не терять данные
|
||||
environment:
|
||||
RABBITMQ_DEFAULT_USER: ${RABBIT_USERNAME} # Логин для пользователя Rabbit Берём из env
|
||||
RABBITMQ_DEFAULT_PASS: ${RABBIT_PASSWORD} # Пароль для пользователя Rabbit. Берём из env
|
||||
|
||||
|
||||
140
mochalov_danila_lab_1/LocalSettings.php
Normal file
140
mochalov_danila_lab_1/LocalSettings.php
Normal file
@@ -0,0 +1,140 @@
|
||||
<?php
|
||||
# This file was automatically generated by the MediaWiki 1.42.1
|
||||
# installer. If you make manual changes, please keep track in case you
|
||||
# need to recreate them later.
|
||||
#
|
||||
# See includes/MainConfigSchema.php for all configurable settings
|
||||
# and their default values, but don't forget to make changes in _this_
|
||||
# file, not there.
|
||||
#
|
||||
# Further documentation for configuration settings may be found at:
|
||||
# https://www.mediawiki.org/wiki/Manual:Configuration_settings
|
||||
|
||||
# Protect against web entry
|
||||
if ( !defined( 'MEDIAWIKI' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
## Uncomment this to disable output compression
|
||||
# $wgDisableOutputCompression = true;
|
||||
|
||||
$wgSitename = 'wiki';
|
||||
$wgMetaNamespace = 'Wiki';
|
||||
|
||||
## The URL base path to the directory containing the wiki;
|
||||
## defaults for all runtime URL paths are based off of this.
|
||||
## For more information on customizing the URLs
|
||||
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
|
||||
## https://www.mediawiki.org/wiki/Manual:Short_URL
|
||||
$wgScriptPath = '';
|
||||
|
||||
## The protocol and server name to use in fully-qualified URLs
|
||||
$wgServer = 'http://localhost:8080';
|
||||
|
||||
## The URL path to static resources (images, scripts, etc.)
|
||||
$wgResourceBasePath = $wgScriptPath;
|
||||
|
||||
## The URL paths to the logo. Make sure you change this from the default,
|
||||
## or else you'll overwrite your logo when you upgrade!
|
||||
$wgLogos = [
|
||||
'1x' => "$wgResourceBasePath/resources/assets/change-your-logo.svg",
|
||||
'icon' => "$wgResourceBasePath/resources/assets/change-your-logo-icon.svg",
|
||||
];
|
||||
|
||||
## UPO means: this is also a user preference option
|
||||
|
||||
$wgEnableEmail = true;
|
||||
$wgEnableUserEmail = true; # UPO
|
||||
|
||||
$wgEmergencyContact = '';
|
||||
$wgPasswordSender = '';
|
||||
|
||||
$wgEnotifUserTalk = false; # UPO
|
||||
$wgEnotifWatchlist = false; # UPO
|
||||
$wgEmailAuthentication = true;
|
||||
|
||||
## Database settings
|
||||
$wgDBtype = 'mysql';
|
||||
$wgDBserver = 'mariadb';
|
||||
$wgDBname = 'my_wiki';
|
||||
$wgDBuser = 'wikiuser';
|
||||
$wgDBpassword = 'password';
|
||||
|
||||
# MySQL specific settings
|
||||
$wgDBprefix = "";
|
||||
$wgDBssl = false;
|
||||
|
||||
# MySQL table options to use during installation or update
|
||||
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
|
||||
|
||||
# Shared database table
|
||||
# This has no effect unless $wgSharedDB is also set.
|
||||
$wgSharedTables[] = "actor";
|
||||
|
||||
## Shared memory settings
|
||||
$wgMainCacheType = CACHE_NONE;
|
||||
$wgMemCachedServers = [];
|
||||
|
||||
## To enable image uploads, make sure the 'images' directory
|
||||
## is writable, then set this to true:
|
||||
$wgEnableUploads = false;
|
||||
$wgUseImageMagick = true;
|
||||
$wgImageMagickConvertCommand = '/usr/bin/convert';
|
||||
|
||||
# InstantCommons allows wiki to use images from https://commons.wikimedia.org
|
||||
$wgUseInstantCommons = false;
|
||||
|
||||
# Periodically send a pingback to https://www.mediawiki.org/ with basic data
|
||||
# about this MediaWiki instance. The Wikimedia Foundation shares this data
|
||||
# with MediaWiki developers to help guide future development efforts.
|
||||
$wgPingback = false;
|
||||
|
||||
# Site language code, should be one of the list in ./includes/languages/data/Names.php
|
||||
$wgLanguageCode = 'ru';
|
||||
|
||||
# Time zone
|
||||
$wgLocaltimezone = 'UTC';
|
||||
|
||||
## Set $wgCacheDirectory to a writable directory on the web server
|
||||
## to make your wiki go slightly faster. The directory should not
|
||||
## be publicly accessible from the web.
|
||||
#$wgCacheDirectory = "$IP/cache";
|
||||
|
||||
$wgSecretKey = '35e36bd38120ddaa8ba6e353d81951b7b85c7be00e0ee915c4bb4bfa44477368';
|
||||
|
||||
# Changing this will log out all existing sessions.
|
||||
$wgAuthenticationTokenVersion = '1';
|
||||
|
||||
# Site upgrade key. Must be set to a string (default provided) to turn on the
|
||||
# web installer while LocalSettings.php is in place
|
||||
$wgUpgradeKey = '698fd18eabeec460';
|
||||
|
||||
## For attaching licensing metadata to pages, and displaying an
|
||||
## appropriate copyright notice / icon. GNU Free Documentation
|
||||
## License and Creative Commons licenses are supported so far.
|
||||
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
|
||||
$wgRightsUrl = '';
|
||||
$wgRightsText = '';
|
||||
$wgRightsIcon = "";
|
||||
|
||||
# Path to the GNU diff3 utility. Used for conflict resolution.
|
||||
$wgDiff3 = '/usr/bin/diff3';
|
||||
|
||||
## Default skin: you can change the default skin. Use the internal symbolic
|
||||
## names, e.g. 'vector' or 'monobook':
|
||||
$wgDefaultSkin = 'vector-2022';
|
||||
|
||||
# Enabled skins.
|
||||
# The following skins were automatically enabled:
|
||||
wfLoadSkin( 'MinervaNeue' );
|
||||
wfLoadSkin( 'MonoBook' );
|
||||
wfLoadSkin( 'Timeless' );
|
||||
wfLoadSkin( 'Vector' );
|
||||
|
||||
|
||||
# End of automatically generated settings.
|
||||
# Add more configuration options below.
|
||||
|
||||
40
mochalov_danila_lab_1/README.md
Normal file
40
mochalov_danila_lab_1/README.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Лабораторная работа №1
|
||||
|
||||
## Описание
|
||||
Для выполнения данной лабораторной работы были развернуты следующие сервисы:
|
||||
- mediawiki - Вики-движок;
|
||||
- mariadb - БД для сервиса mediawiki;
|
||||
- drupal - Система управления контентом;
|
||||
- postgres - БД для сервиса drupal.
|
||||
|
||||
В файле docker-compose прописаны инструкции для запуска четырех контейнеров с сервисами.
|
||||
Для пояснения инструкций для каждой строки добавлены комментарии с объяснением.
|
||||
|
||||
## Запуск
|
||||
Для запуска необходимо перейти в папку с файлом docker-compose и ввести команду в терминале
|
||||
```
|
||||
docker compose up -d
|
||||
```
|
||||
Флаг -d позволяет запустить контейнеры в фоновом режиме, оставляя доступ к консоли.
|
||||
|
||||
Для полноценного первого запуска сервиса drupal необходимо открыть его веб-клиент и следовать инструкциям.
|
||||
Для полноценного первого запуска сервиса mediawiki необходимо открыть его веб-клиент после запуска и следовать инструкциям по настройке.
|
||||
После получения файла LocalSettings.php необходимо:
|
||||
- расскоментировать строчку ./LocalSettings.php:/var/www/html/LocalSettings.php в docker-compose
|
||||
- перенести файл в директорию с файлом docker-compose и перезапустить контейнер.
|
||||
|
||||
Для проверки контейнеров после запуска можно использовать команду
|
||||
```
|
||||
docker ps -a
|
||||
```
|
||||
В случае если все контейнеры успешно запущены мы увидим в их в консоли со статусом Up
|
||||
```
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
e86a2cd3b071 mediawiki "docker-php-entrypoi…" 42 seconds ago Up 39 seconds 0.0.0.0:8080->80/tcp mochalov_danila_lab_1-mediawiki-1
|
||||
260ca4b612fe postgres:16 "docker-entrypoint.s…" 42 seconds ago Up 41 seconds 5432/tcp mochalov_danila_lab_1-postgres-1
|
||||
1fbd6c3922e2 mariadb "docker-entrypoint.s…" 42 seconds ago Up 41 seconds 3306/tcp mochalov_danila_lab_1-mariadb-1
|
||||
a7d4e194a30a drupal:10-apache "docker-php-entrypoi…" 42 seconds ago Up 40 seconds 0.0.0.0:3000->80/tcp mochalov_danila_lab_1-drupal-1
|
||||
```
|
||||
|
||||
## Демонстрация работы
|
||||
Для демонстрации работоспособности записан ролик. Доступ по [ссылке] (https://drive.google.com/file/d/1GkJSwaoSUjggKQIRJlNQtJ12QEDtium6/view?usp=sharing)
|
||||
52
mochalov_danila_lab_1/docker-compose.yml
Normal file
52
mochalov_danila_lab_1/docker-compose.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
services:
|
||||
mediawiki: # Сервис MediaWiki
|
||||
image: mediawiki # Образ MediaWiki из Docker Hub
|
||||
restart: always # Автоматический перезапуск контейнера при сбое
|
||||
ports:
|
||||
- 8080:80 # Проброс порта 80 из контейнера на порт 8080 хоста
|
||||
depends_on:
|
||||
- mariadb # Запуск MediaWiki только после запуска MariaDB
|
||||
volumes:
|
||||
- images:/var/www/html/images # Монтирование volume для хранения данных
|
||||
- ./LocalSettings.php:/var/www/html/LocalSettings.php # Монтирование локального файла настроек (ЗАКОММЕНТИРОВАТЬ ДО НАСТРОЙКИ)
|
||||
|
||||
mariadb: # Сервис MariaDB
|
||||
image: mariadb # Образ MariaDB из Docker Hub
|
||||
restart: always # Автоматический перезапуск контейнера при сбое
|
||||
environment: # Переменные окружения для настройки базы данных
|
||||
MYSQL_DATABASE: my_wiki # Название базы данных
|
||||
MYSQL_USER: wikiuser # Имя пользователя для доступа к базе данных
|
||||
MYSQL_PASSWORD: password # Пароль для пользователя
|
||||
MYSQL_RANDOM_ROOT_PASSWORD: 'yes' # Случайный пароль для пользователя root
|
||||
volumes:
|
||||
- db_maria:/var/lib/mysql # Монтирование volume для хранения данных базы
|
||||
|
||||
drupal: # Сервис Drupal
|
||||
image: drupal:10-apache # Образ Drupal
|
||||
ports:
|
||||
- 3000:80 # Проброс порта 80 из контейнера на порт 3000 хоста
|
||||
volumes: # Монтирование volumes для хранения локальных файлов Drupal
|
||||
- drupal-modules:/var/www/html/modules
|
||||
- drupal-profiles:/var/www/html/profiles
|
||||
- drupal-themes:/var/www/html/themes
|
||||
- drupal-sites:/var/www/html/sites
|
||||
restart: always # Автоматический перезапуск контейнера при сбое
|
||||
depends_on:
|
||||
- postgres # Запуск Drupal только после запуска Postgres
|
||||
|
||||
postgres: # Сервис PostgreSQL
|
||||
image: postgres:16 # Образ PostgreSQL
|
||||
environment:
|
||||
POSTGRES_PASSWORD: password # Пароль для пользователя postgres
|
||||
restart: always # Автоматический перезапуск контейнера при сбое
|
||||
volumes:
|
||||
- db_postgres:/var/lib/postgresql # Монтирование volume для хранения данных базы
|
||||
|
||||
volumes:
|
||||
images: # Volume для хранения изображений MediaWiki
|
||||
db_maria: # Volume для хранения данных MariaDB
|
||||
db_postgres: # Volume для хранения данных Postgres
|
||||
drupal-modules: # Volumes для хранения локальных данных Drupal
|
||||
drupal-profiles: # Volumes для хранения локальных данных Drupal
|
||||
drupal-themes: # Volumes для хранения локальных данных Drupal
|
||||
drupal-sites: # Volumes для хранения локальных данных Drupal
|
||||
1
tsukanova_irina_lab_1/.gitignore
vendored
Normal file
1
tsukanova_irina_lab_1/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*data/
|
||||
32
tsukanova_irina_lab_1/README.md
Normal file
32
tsukanova_irina_lab_1/README.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Лабораторная работа №1 - Знакомство с docker и docker-compose
|
||||
|
||||
## Выбранные сервисы:
|
||||
1. WordPress - платформа для публикаций
|
||||
2. MySQL - база данных для WordPress
|
||||
3. MediaWiki - вики-движок
|
||||
|
||||
## Запуск
|
||||
Запуск производится посредством команды
|
||||
```docker-compose up -d```
|
||||
В консоль выведется информация о запуске:
|
||||
```
|
||||
[+] Running 4/4
|
||||
✔ Network tsukanova_irina_lab_1_app-network Created 0.1s
|
||||
✔ Container mediawiki_app Started 0.9s
|
||||
✔ Container mysql Started 0.8s
|
||||
✔ Container wordpress_app Started 1.2s
|
||||
```
|
||||
|
||||
## Содержимое docker-compose.yml
|
||||
У всех сервисов указан ```image``` - это шаблон среды для контейнера. Образ служит "базовой" версией, на основе которой создаются контейнеры.
|
||||
```container_name``` - можно указать, как будет называться контейнер.
|
||||
```ports``` - для проброса порта, чтобы можно было иметь доступ к сервису с хоста.
|
||||
```environment``` - для указания переменных окружения, которые передаются контейнеру при его запуске.
|
||||
```volumes``` - для организации постоянного хранилища данных контейнеров Docker.
|
||||
```networks``` - определяет, как контейнеры взаимодействуют между собой и с внешним миром через сети.
|
||||
|
||||
## Скриншот работы
|
||||
Docker Desktop:
|
||||

|
||||
|
||||
## [Видео](https://drive.google.com/file/d/170k0_yR2gbg3eCDSanJmGT8NXN3PkKSf/view?usp=sharing)
|
||||
52
tsukanova_irina_lab_1/docker-compose.yml
Normal file
52
tsukanova_irina_lab_1/docker-compose.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
services: # определяет сервисы, которые будут запущены
|
||||
|
||||
db: # сервис базы данных
|
||||
image: mysql:8.0 # Образ MySQL
|
||||
container_name: mysql # имя для контейнера
|
||||
restart: always
|
||||
volumes:
|
||||
- ./db_data:/var/lib/postgres # Том для постоянного хранения данных
|
||||
ports:
|
||||
- "20001:3306" # порт для доступа к MySQL с хоста
|
||||
environment:
|
||||
MYSQL_DATABASE: lab1 # имя базы данных
|
||||
MYSQL_USER: user # имя пользовтеля
|
||||
MYSQL_PASSWORD: password # пароль пользователя
|
||||
MYSQL_ROOT_PASSWORD: password # пароль для root
|
||||
|
||||
networks:
|
||||
- app-network
|
||||
|
||||
|
||||
wordpress:
|
||||
image: wordpress:latest # образ WordPress
|
||||
container_name: wordpress_app
|
||||
environment:
|
||||
WORDPRESS_DB_HOST: db:3306 # имя хоста базы данных
|
||||
WORDPRESS_DB_USER: user # имя пользователя БД
|
||||
WORDPRESS_DB_PASSWORD: password # пароль пользователя
|
||||
WORDPRESS_DB_NAME: lab1 # имя базы данных
|
||||
ports:
|
||||
- "20002:80" # порт для доступа к WordPress
|
||||
volumes:
|
||||
- ./wordpress_data:/var/www/html/wordpress_data # для хранения данных WordPress
|
||||
depends_on:
|
||||
- db # WordPress запустится после запуска базы данных
|
||||
networks:
|
||||
- app-network
|
||||
|
||||
|
||||
mediawiki:
|
||||
image: mediawiki:latest # образ MediaWiki
|
||||
container_name: mediawiki_app
|
||||
ports:
|
||||
- "20003:80" # порт для доступа к MediaWiki
|
||||
volumes:
|
||||
- ./mediawiki_data:/var/www/html/mediawiki # для хранения данных MediaWiki
|
||||
networks:
|
||||
- app-network
|
||||
|
||||
|
||||
networks:
|
||||
app-network:
|
||||
driver: bridge # общая сеть для контейнеров
|
||||
BIN
tsukanova_irina_lab_1/screenshot.png
Normal file
BIN
tsukanova_irina_lab_1/screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 114 KiB |
4
vaksman_valerya_lab_1/.env
Normal file
4
vaksman_valerya_lab_1/.env
Normal file
@@ -0,0 +1,4 @@
|
||||
DB_HOST = db
|
||||
DB_USER = wordpress
|
||||
DB_PASSWORD = wordpress
|
||||
DB_NAME = wordpress
|
||||
1
vaksman_valerya_lab_1/.gitignote
Normal file
1
vaksman_valerya_lab_1/.gitignote
Normal file
@@ -0,0 +1 @@
|
||||
mediawiki_data/
|
||||
BIN
vaksman_valerya_lab_1/1.png
Normal file
BIN
vaksman_valerya_lab_1/1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 75 KiB |
129
vaksman_valerya_lab_1/README.md
Normal file
129
vaksman_valerya_lab_1/README.md
Normal file
@@ -0,0 +1,129 @@
|
||||
# Лабораторная работа №1 - Знакомство с docker и docker-compose
|
||||
|
||||
## Задание
|
||||
|
||||
Разверните 3 сервиса на выбор в контейнерах docker с помощью docker-compose, учитывая следующие требования:
|
||||
|
||||
* Несколько контейнеров.
|
||||
* Хотя бы один volume.
|
||||
* Хотя бы один порт, проброшенный на хост.
|
||||
* Разворачивание системы должно пройти до конца.
|
||||
|
||||
## Запуск
|
||||
|
||||
Введение в терминале команды:
|
||||
```
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
# Выбранные сервисы
|
||||
|
||||
1. ```db``` - самая новая версия БД MaraiDB
|
||||
|
||||
2. ```phpmyadmin``` - система управления базой данных
|
||||
|
||||
3. ```mediawiki``` - движок вики
|
||||
|
||||
4. ```wordpress``` - платформа для управления контентом
|
||||
|
||||
|
||||
## Описание работы:
|
||||
|
||||
Были развёрнуты следующие сервисы:
|
||||
|
||||
### phpmyadmin
|
||||
|
||||
```
|
||||
phpmyadmin:
|
||||
depends_on:
|
||||
- db
|
||||
image: phpmyadmin
|
||||
hostname: php_my_admin
|
||||
container_name: php_my_admin
|
||||
volumes: # см. конец файла
|
||||
- php_my_admin_data:/var/www/html
|
||||
ports:
|
||||
- 8080:80
|
||||
restart: always
|
||||
environment:
|
||||
PMA_ARBITRARY: 1
|
||||
TZ: "Europe/Moscow"
|
||||
PMA_HOST: ${DB_HOST}
|
||||
PMA_USER : ${DB_USER}
|
||||
PMA_PASSWORD : ${DB_PASSWORD}
|
||||
```
|
||||
|
||||
Этот код представляет собой часть файла конфигурации ```Docker Compose```, который используется для управления многоконтейнерными приложениями в Docker.
|
||||
|
||||
#### Объяснение работы кода:
|
||||
|
||||
Эта строка отвечает за образ сброки:
|
||||
```
|
||||
image: phpmyadmin
|
||||
```
|
||||
Задание имени контейнера:
|
||||
```
|
||||
container_name: php_my_admin
|
||||
```
|
||||
Проброс портов:
|
||||
```
|
||||
ports:
|
||||
- 8080:80
|
||||
```
|
||||
Тома для хранения данных:
|
||||
```
|
||||
volumes:
|
||||
- .php_my_admin_data:/var/www/html
|
||||
|
||||
```
|
||||
Переменные окружения для Drupal
|
||||
```
|
||||
environment:
|
||||
PMA_ARBITRARY: 1
|
||||
TZ: "Europe/Moscow"
|
||||
PMA_HOST: ${DB_HOST}
|
||||
PMA_USER : ${DB_USER}
|
||||
PMA_PASSWORD : ${DB_PASSWORD}
|
||||
|
||||
```
|
||||
Аналогично со другими сервисами:
|
||||
|
||||
### mediawiki
|
||||
|
||||
```
|
||||
image: mediawiki:latest # образ MediaWiki
|
||||
container_name: mediawiki_app
|
||||
volumes: # см. конец файла
|
||||
- ./mediawiki_data:/var/www/html/mediawiki
|
||||
ports:
|
||||
- "8088:80"
|
||||
restart: always
|
||||
```
|
||||
|
||||
### Wordpress
|
||||
|
||||
```
|
||||
depends_on:
|
||||
- db
|
||||
image: wordpress:latest
|
||||
hostname: wp_app
|
||||
container_name: wp_app
|
||||
volumes: # см. конец файла
|
||||
- wordpress_data:/var/www/html
|
||||
ports:
|
||||
- "8000:80"
|
||||
restart: always
|
||||
user: www-data
|
||||
environment: # секция настроек для подключения wordpress к БД
|
||||
TZ: "Europe/Moscow"
|
||||
WORDPRESS_DB_HOST: ${DB_HOST}
|
||||
WORDPRESS_DB_USER: ${DB_USER}
|
||||
WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
|
||||
WORDPRESS_DB_NAME: ${DB_NAME}
|
||||
```
|
||||
# Скриншот работы
|
||||
Панель консоли
|
||||

|
||||
|
||||
# ВК
|
||||
https://vk.com/video256017065_456239870?list=ln-qWUdZke5z53x940ZHv
|
||||
66
vaksman_valerya_lab_1/docker-compose.yaml
Normal file
66
vaksman_valerya_lab_1/docker-compose.yaml
Normal file
@@ -0,0 +1,66 @@
|
||||
services:
|
||||
db: # контейнер базы данных
|
||||
image: mariadb:latest # самая свежая версия MySql
|
||||
hostname: wp_database # хост контейнера внутри стистемы докер
|
||||
container_name: wp_database # имя контейнера с системе docker
|
||||
volumes: # см. конец файла
|
||||
- db_data:/var/lib/mysql
|
||||
restart: always
|
||||
environment: # cекция настроек для БД
|
||||
TZ: "Europe/Moscow"
|
||||
MYSQL_ROOT_PASSWORD: somewordpress
|
||||
MYSQL_DATABASE: ${DB_NAME}
|
||||
MYSQL_USER: ${DB_USER}
|
||||
MYSQL_PASSWORD: ${DB_PASSWORD}
|
||||
|
||||
phpmyadmin: # СУБД для БД
|
||||
depends_on: # запускаем после MySql
|
||||
- db
|
||||
image: phpmyadmin # скачиваем уже существующие образы для построения и запуска наших контейнеров
|
||||
hostname: php_my_admin
|
||||
container_name: php_my_admin
|
||||
volumes: # см. конец файла
|
||||
- php_my_admin_data:/var/www/html
|
||||
ports:
|
||||
- 8080:80
|
||||
restart: always
|
||||
environment:
|
||||
PMA_ARBITRARY: 1 # разрешение на подключения к любому серверу
|
||||
TZ: "Europe/Moscow"
|
||||
PMA_HOST: ${DB_HOST} # сразу заходим под нашими паролями и учёткой
|
||||
PMA_USER : ${DB_USER}
|
||||
PMA_PASSWORD : ${DB_PASSWORD}
|
||||
|
||||
wordpress: # контейнер wordpress
|
||||
depends_on: # запускаем после MySql
|
||||
- db
|
||||
image: wordpress:latest # самая свежая версия MySql
|
||||
hostname: wp_app
|
||||
container_name: wp_app
|
||||
volumes: # см. конец файла
|
||||
- wordpress_data:/var/www/html
|
||||
ports:
|
||||
- "8000:80"
|
||||
restart: always
|
||||
user: www-data
|
||||
environment: # секция настроек для подключения wordpress к БД
|
||||
TZ: "Europe/Moscow"
|
||||
WORDPRESS_DB_HOST: ${DB_HOST}
|
||||
WORDPRESS_DB_USER: ${DB_USER}
|
||||
WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
|
||||
WORDPRESS_DB_NAME: ${DB_NAME}
|
||||
|
||||
mediawiki: # контейнер mediawiki
|
||||
image: mediawiki:latest # образ MediaWiki
|
||||
container_name: mediawiki_app
|
||||
volumes: # см. конец файла
|
||||
- ./mediawiki_data:/var/www/html/mediawiki
|
||||
ports:
|
||||
- "8088:80"
|
||||
restart: always
|
||||
|
||||
volumes: # для локального хранения сессионных данных из работы контейнеров
|
||||
db_data: {}
|
||||
wordpress_data: {}
|
||||
php_my_admin_data: {}
|
||||
mediawiki: {}
|
||||
Reference in New Issue
Block a user