Merge pull request 'tukaeva_alfiya_lab_1 is ready' (#14) from tukaeva_alfiya_lab_1 into main

Reviewed-on: #14
This commit is contained in:
Alexey 2024-09-23 16:54:53 +04:00
commit 314751f25c
6 changed files with 222 additions and 0 deletions

View File

@ -0,0 +1,4 @@
DB_HOST = wp_database
DB_USER = wordpress
DB_PASSWORD = wordpress
DB_NAME = wordpress

View File

@ -0,0 +1,13 @@
FROM wordpress:latest
# Установка WP-CLI
RUN apt-get update && apt-get install -y less \
&& curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \
&& chmod +x wp-cli.phar \
&& mv wp-cli.phar /usr/local/bin/wp
# Копируем скрипт entrypoint
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

View File

@ -0,0 +1,137 @@
# Лабораторная работа №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

View File

@ -0,0 +1,53 @@
services:
mediawiki: # Определение сервиса MediaWiki
image: mediawiki:1.35 # Используемый образ MediaWiki версии 1.35
ports: # Настройка портов
- "8080:80"
containername: mediawiki # Имя контейнера
volumes: # Настройка томов
- mediawiki_data:/var/www/html/images
db_wordpress: # Определение сервиса MySQL для WordPress
image: mysql:5.7 # Используемый образ MySQL версии 5.7
containername: wp_database # Имя контейнера
environment: # Переменные окружения
MYSQLROOTPASSWORD: rootsecret
MYSQLDATABASE: ${DBNAME}
MYSQLUSER: ${DBUSER}
MYSQLPASSWORD: ${DBPASSWORD}
volumes: # Настройка томов
- db_wordpress_data:/var/lib/mysql
wordpress: # Определение сервиса WordPress
image: wordpress:latest # Используемый образ WordPress последней версии
containername: wp_app # Имя контейнера
restart: always
ports: # Настройка портов
- "8000:80"
user: www-data
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
redmine: # Определение сервиса Redmine
image: redmine:latest # Используемый образ Redmine последней версии
containername: redmine # Имя контейнера
ports: # Настройка портов
- "3000:3000"
volumes: # Настройка томов
- redmine_data:/usr/src/redmine/files
volumes: # Определение томов
mediawiki_data: # ТОМ для MediaWiki
wordpress_data: # ТОМ для WordPress
db_wordpress_data: # ТОМ для MySQL
redmine_data: # ТОМ для Redmine

View File

@ -0,0 +1,15 @@
#!/bin/bash
set -e
# Ожидание готовности базы данных
until wp db check; do
echo "Ожидание базы данных..."
sleep 5
done
# Установка WordPress
if ! wp core is-installed; then
wp core install --url="http://localhost:8000" --title="Библиотека" --admin_user="admin" --admin_password="admin_password" --admin_email="admin@example.com" --skip-email
fi
exec apache2-foreground

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB