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