forked from Alexey/DAS_2024_1
Compare commits
1 Commits
polevoy_se
...
balakhonov
| Author | SHA1 | Date | |
|---|---|---|---|
| 221f3e248b |
59
balakhonov_danila_lab_1/README.md
Normal file
59
balakhonov_danila_lab_1/README.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Лабораторная работа номер 1
|
||||
|
||||
> Здравствуйте меня зовут Балахонов Данила группа ПИбд-42
|
||||
>
|
||||
> *— Балахонов Данила ПИбд-42*
|
||||
|
||||
Видео лабораторной работы номер 1 доступно по этой [ссылке](https://drive.google.com/file/d/1Up_JzDcK_TjYLixpfYXN7PhJmOeg_Uck/view?usp=sharing).
|
||||
|
||||
## Как запустить лабораторную работу номер 1?
|
||||
### Необходимые компоненты для запуска лабораторной работы номер 1
|
||||
> Здесь рассказана установка необходимых компонентов для запуска лабораторной работы номер 1 под дистрибутив GNU/Linux **Ubuntu**.
|
||||
|
||||
Для запуска лабораторной работы номер 1 необходимы такие компоненты:
|
||||
- Git
|
||||
- Docker
|
||||
- Docker compose
|
||||
|
||||
Чтобы установить **Git**, необходимо ввести данные команды в командную строку:
|
||||
``` bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install git
|
||||
```
|
||||
|
||||
Чтобы установить **Docker** и **Docker compose**, стоит ввести такие команды:
|
||||
``` bash
|
||||
# Настройка репозитория Docker
|
||||
sudo apt-get update
|
||||
sudo apt-get install ca-certificates curl
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
||||
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
|
||||
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
sudo apt-get update
|
||||
|
||||
# Установка Docker и его компонентов
|
||||
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
```
|
||||
### Запуск лабораторной работы номер 1
|
||||
Для запуска лабораторной работы номер 1 необходимо **склонировать** репозиторий в любую папку и **перейти на ветку** balakhonov_danila_lab_1.
|
||||
Далее в папке с `docker-compose.yaml` нужно вызвать такую команду:
|
||||
``` bash
|
||||
sudo docker-compose up -d
|
||||
```
|
||||
Таким образом будут запущены контейнеры в фоновом режиме.
|
||||
## Какие технологии были использованы?
|
||||
Для выполнения лабораторной работы номер 1 использовались такие технологии, как: *git*, *docker*, *docker compose*.
|
||||
|
||||
Сервисы, выбранные для запуска в docker-compose файле:
|
||||
- *Gitea* - удобный сервис отслеживания версий разрабатываемого ПО
|
||||
- *MediaWiki* - сервис создания и ведения электронной энциклопедии
|
||||
- *PostgreSQL* - база данных, используемая сервисами выше
|
||||
|
||||
Системой, на которую были установлены указанные технологии, является Ubuntu 22.
|
||||
## Что делает лабораторная работа номер 1?
|
||||
Лабораторная работа номер 1 заключается в написании docker-compose файла для удобного запуска и администрирования сразу нескольких сервисов в docker-контейнерах.
|
||||
58
balakhonov_danila_lab_1/docker-compose.yaml
Normal file
58
balakhonov_danila_lab_1/docker-compose.yaml
Normal file
@@ -0,0 +1,58 @@
|
||||
services:
|
||||
# PostgreSQL
|
||||
db:
|
||||
# Образ контейнера PostgreSQL последней версии
|
||||
image: postgres
|
||||
# Название контейнера
|
||||
container_name: db
|
||||
# Переменные окружения для настройки базы данных
|
||||
environment:
|
||||
- POSTGRES_USER=gitea
|
||||
- POSTGRES_PASSWORD=gitea
|
||||
- POSTGRES_DB=gitea
|
||||
# Настройка корневого каталога, где хранятся данные
|
||||
# Слева указан каталог компьютера, справа - каталог контейнера
|
||||
# Нужно для сохранения данных на сервере после отключения контейнера
|
||||
volumes:
|
||||
- ./postgres:/var/lib/postgresql/data
|
||||
# Порт, через который можно будет подключиться к базе данных
|
||||
ports:
|
||||
- 5432:5432
|
||||
# После перезапуска докера всегда запускать этот контейнер
|
||||
restart: always
|
||||
# Gitea
|
||||
gitea:
|
||||
# Используется Gitea последней версии
|
||||
image: gitea/gitea
|
||||
container_name: gitea
|
||||
# После перезапуска докера всегда запускать этот контейнер
|
||||
restart: always
|
||||
volumes:
|
||||
- ./data:/var/lib/gitea
|
||||
- ./config:/etc/gitea
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
ports:
|
||||
- 3000:3000
|
||||
- 2222:2222
|
||||
environment:
|
||||
- GITEA__database__DB_TYPE=postgres
|
||||
- GITEA__database__HOST=db:5432
|
||||
- GITEA__database__NAME=gitea
|
||||
- GITEA__database__USER=gitea
|
||||
- GITEA__database__PASSWD=gitea
|
||||
# Указывается, что этот контейнер запускается только после запуска контейнера db
|
||||
depends_on:
|
||||
- db
|
||||
# MediaWiki
|
||||
mediawiki:
|
||||
# Образ контейнера MediaWiki последней версии
|
||||
image: mediawiki
|
||||
container_name: mediawiki
|
||||
restart: always
|
||||
ports:
|
||||
- 8080:80
|
||||
links:
|
||||
- db
|
||||
volumes:
|
||||
- ./images:/var/www/html/images
|
||||
@@ -1,42 +0,0 @@
|
||||
services: # Начало объявления сервисов
|
||||
gitea: # Указывается название сервиса
|
||||
image: gitea/gitea:1.22.2 # Указание названия образа (и/или его версии), который будет взят для создания контейнера
|
||||
restart: always # Указывается политика перезапуска, в данном случае всегда перезапускать контейнер, если он остановился
|
||||
environment: # Указываются переменные среды
|
||||
- GITEA__database__DB_TYPE=postgres # Тип базы данных
|
||||
- GITEA__database__HOST=postgres:5432 # Хост бд. Название сервиса это а-ля доменное имя и внутри сети разрешается в ip нужного контейнера
|
||||
- GITEA__database__NAME=gitea # Название базы данных
|
||||
- GITEA__database__USER=superuser # Пользователь базы данных
|
||||
- GITEA__database__PASSWD=superpassword # Пароль пользователя базы данных
|
||||
ports: # Перечисляются пробросы портов на хостовую машину. Слева порт хостовой машины, справа порт контейнера
|
||||
- "3000:3000" # Web интерфейс
|
||||
- "222:22" # SSH
|
||||
volumes: # Указываются монтированные тома, папки, файлы. В данном случае в папку /data монтируется объявленный ниже том gitea
|
||||
- gitea:/data
|
||||
depends_on: # Указывается зависимость запуска контейнера от другого сервиса, в данном случае запускается только после запуска сервиса бд
|
||||
- postgres
|
||||
# Дальше всё по аналогии, различаются лишь названия, переменные окружения, образы, порты и тома
|
||||
postgres:
|
||||
image: postgres:14
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_USER=superuser
|
||||
- POSTGRES_PASSWORD=superpassword
|
||||
- POSTGRES_DB=gitea
|
||||
ports:
|
||||
- "5432:5432"
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/data
|
||||
|
||||
rabbitmq:
|
||||
image: rabbitmq:3-management
|
||||
environment:
|
||||
RABBITMQ_DEFAULT_USER: superuser
|
||||
RABBITMQ_DEFAULT_PASS: superpassword
|
||||
ports:
|
||||
- "5672:5672"
|
||||
- "15672:15672"
|
||||
|
||||
volumes: # Перечисление томов, которые можно использовать как в одном, так и в нескольких сервисах
|
||||
postgres:
|
||||
gitea:
|
||||
@@ -1,25 +0,0 @@
|
||||
# Лабораторная работа №1
|
||||
В рамках данной лабораторной работы будут развёрнуты следующие сервисы:
|
||||
1. **Gitea** - система управления версиями
|
||||
2. **Postgres** - реляционая база данных
|
||||
3. **Rabbitmq** - брокер сообщений
|
||||
|
||||
Инструкции к запуску контейнеров и пояснения к ним находятся в файле ```docker-compose.yml```
|
||||
|
||||
## Порядок запуска
|
||||
#### 1. Установить docker или убедиться, что он установлен
|
||||
#### 2. Перейти в папку с файлом ```docker-compose.yml```
|
||||
#### 3. Выполнить команду в терминале: ```docker-compose up --build --remove-orphans```
|
||||
|
||||
Проверить успешность запуска можно командой ```docker ps -a```. Если всё прошло успешно, то в терминале будет написано:
|
||||
```
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
1a794331b32b gitea/gitea:1.22.2 "/usr/bin/entrypoint…" 20 seconds ago Up 18 seconds 0.0.0.0:3000->3000/tcp, 0.0.0.0:222->22/tcp polevoy_sergey_lab_1-gitea-1
|
||||
b5fe33c61c1d rabbitmq:3-management "docker-entrypoint.s…" 20 seconds ago Up 19 seconds 4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp rabbitmq
|
||||
3d2db73d15c5 postgres:14 "docker-entrypoint.s…" 20 seconds ago Up 19 seconds 0.0.0.0:5432->5432/tcp polevoy_sergey_lab_1-postgres-1
|
||||
```
|
||||
|
||||
Работать со всеми перечисленными сервисами можно сразу после запуска за исключением **gitea**. После первого запуска необходимо зайти на сервис, выполнить первоначальную настройку и создать суперпользователя.
|
||||
|
||||
## Видеодемонстрация работы
|
||||
### Видео доступно по [ссылке](https://disk.yandex.ru/i/3Out4mUV6NEJuA)
|
||||
Reference in New Issue
Block a user