Модуль 2. Задание 6.¶
Решение¶
BR-SRV¶
Пакеты
На некоторых дистрибутивах может потребоваться установить пакеты docker-engine docker-compose-v2.
apt-get update && apt-get install -y docker-engine docker-compose-v2
Отключаем Alterator Frontend, если присутствует, т.к. он занимает порт 8080:
systemctl disable --now ahttpd
На всякий случай:
fuser -k 8080/tcp
Находим диск с нашим Additional.iso, его можно определить по весу. В районе 930 MB. В качестве примера будет использоваться название sr0.
lsblk
Тут убеждаемся, что он ещё не смонтирован, т. е. вывод пустой.
mount | grep -i "sr0"
df -h | grep -i "sr0"
Если ничего не смонтировано, то монтируем в /mnt/additional:
mkdir -p /mnt/additional/
mount /dev/sr0 /mnt/additional/
Если всё-же Additional.iso уже куда-то смонтирован, то просто подмените пути на свои.
Запускаем Docker, если тот выключен:
systemctl enable --now docker
Подгружаем образы в Docker:
docker load -i /mnt/additional/docker/mariadb_latest.tar
docker load -i /mnt/additional/docker/site_latest.tar
Образы загрузятся как site:latest и mariadb:10.11, проверить можно командой docker images.
Additional.iso
По заданию compose.yaml должен лежать в Additional.iso, но на момент написания решения его там нет, поэтому пишем файл сами. Если образ обновят, этот шаг возможно уберём.
Переменные описаны в /mnt/additional/docker/readme.txt, приложение слушает порт 8000.
mkdir -p /root/testapp
cd /root/testapp
Если файл в образе всё-таки есть, копируем его и сверяем с примером ниже: cp $(find /mnt/additional -name compose.yaml) /root/testapp/
services:
db:
image: mariadb:10.11
restart: always
container_name: 'db'
environment:
TZ: Europe/Moscow
MARIADB_DATABASE: 'testdb'
MARIADB_USER: 'test'
MARIADB_PASSWORD: 'P@ssw0rd'
MARIADB_ROOT_PASSWORD: 'toor'
volumes:
- mariadb:/var/lib/mysql
testapp:
image: site:latest
restart: always
container_name: 'testapp'
ports:
- "8080:8000"
environment:
DB_TYPE: 'maria'
DB_HOST: 'db'
DB_PORT: '3306'
DB_NAME: 'testdb'
DB_USER: 'test'
DB_PASS: 'P@ssw0rd'
volumes:
mariadb:
Запускаем:
docker compose up -d
Если testapp стартовал раньше базы и упал, restart: always перезапустит его сам.
Проверка:
docker compose ps
curl -4 -v localhost:8080
Судя по readme.txt, проверять будут так: добавляют 3 записи через сайт и перезагружают BR-SRV. Записи должны сохраниться, за это отвечает том mariadb.