forked from Alexey/DAS_2024_1
Merge pull request 'tukaeva_alfiya_lab_1 is ready' (#14) from tukaeva_alfiya_lab_1 into main
Reviewed-on: Alexey/DAS_2024_1#14
This commit is contained in:
commit
314751f25c
4
tukaeva_alfiya_lab_1/.env
Normal file
4
tukaeva_alfiya_lab_1/.env
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
DB_HOST = wp_database
|
||||||
|
DB_USER = wordpress
|
||||||
|
DB_PASSWORD = wordpress
|
||||||
|
DB_NAME = wordpress
|
13
tukaeva_alfiya_lab_1/Dockerfile
Normal file
13
tukaeva_alfiya_lab_1/Dockerfile
Normal 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"]
|
137
tukaeva_alfiya_lab_1/README.md
Normal file
137
tukaeva_alfiya_lab_1/README.md
Normal 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
|
53
tukaeva_alfiya_lab_1/docker-compose.yml
Normal file
53
tukaeva_alfiya_lab_1/docker-compose.yml
Normal 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
|
15
tukaeva_alfiya_lab_1/entrypoint.sh
Normal file
15
tukaeva_alfiya_lab_1/entrypoint.sh
Normal 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
|
BIN
tukaeva_alfiya_lab_1/lab_1.png
Normal file
BIN
tukaeva_alfiya_lab_1/lab_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 43 KiB |
Loading…
Reference in New Issue
Block a user