From 6b944a63179fb1113a01de7b5d63f4b4000ff509 Mon Sep 17 00:00:00 2001 From: esoe Date: Fri, 25 Oct 2024 16:35:10 +0300 Subject: [PATCH] moodle in setup --- README.md | 26 +++++++++++++++++++++++++- base/.env | 5 +++++ base/README.md | 2 ++ base/docker-compose.yaml | 29 +++++++++++++++++++++++++++++ base/dockerfile | 9 +++++++++ base/init.ps1 | 6 ++++++ base/run.ps1 | 24 ++++++++++++++++++++++++ base/scripts/init-database.sh | 9 +++++++++ moodle/SETUP.md | 22 ++++++++++++++++++++++ 9 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 base/.env create mode 100644 base/README.md create mode 100644 base/docker-compose.yaml create mode 100644 base/dockerfile create mode 100644 base/init.ps1 create mode 100644 base/run.ps1 create mode 100644 base/scripts/init-database.sh create mode 100644 moodle/SETUP.md diff --git a/README.md b/README.md index 02cacb4..8054673 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,27 @@ # exam +Повторение материала и проверка знаний работников -Повторение материала и проверка знаний работников по направлениям деятельности \ No newline at end of file +# Архитектура платформы +## Серисы +### вспомогательные: +base - СУБД +source - api для работы с СУБД +storage - api для работы с файловой системой +auth - авторизация пользователей (для администрирования или просмотра результатов) +log - консолидированная работа с логами сервисов + +### целевые: +quiz - прохождение теста/опроса +learn - просмотр контента +admin - администрирование платформы +results - предоставление результатов +moodle - + +## тома +exam-base +exam-prebase +exam-log +exam-storage + +## сети +exam-net diff --git a/base/.env b/base/.env new file mode 100644 index 0000000..458e975 --- /dev/null +++ b/base/.env @@ -0,0 +1,5 @@ +PG_CONTAINER_NAME='exam-base' +POSTGRES_USER='exam' +POSTGRES_PASSWORD='exam' +POSTGRES_DB='exam' +PGDATA='/data/exam' \ No newline at end of file diff --git a/base/README.md b/base/README.md new file mode 100644 index 0000000..b2ef648 --- /dev/null +++ b/base/README.md @@ -0,0 +1,2 @@ +# exam-base +миктосервис, предосавляющий доступ к postgres \ No newline at end of file diff --git a/base/docker-compose.yaml b/base/docker-compose.yaml new file mode 100644 index 0000000..f43e94a --- /dev/null +++ b/base/docker-compose.yaml @@ -0,0 +1,29 @@ +# version: "3.7" +services: + exam-base: + build: + context: ../base + dockerfile: dockerfile + image: "exam-base" + container_name: ${PG_CONTAINER_NAME} + environment: + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + PGDATA: ${PGDATA} + volumes: + - exam-base:${PGDATA} + - exam-prebase:/var/lib/postgresql/data + ports: + - "5430:5432" + restart: unless-stopped +volumes: + exam-base: + external: true + exam-prebase: + external: true +networks: + default: + name: exam-net + external: true + driver: bridge \ No newline at end of file diff --git a/base/dockerfile b/base/dockerfile new file mode 100644 index 0000000..d31e932 --- /dev/null +++ b/base/dockerfile @@ -0,0 +1,9 @@ +# Postgres-service start +ARG VERSION=latest +# Образ контейнера +FROM postgres:${VERSION} + +# Сведения о контейнере +LABEL author="esoe" +LABEL description="postgres image for exam" +LABEL version="1.0" diff --git a/base/init.ps1 b/base/init.ps1 new file mode 100644 index 0000000..d9132b8 --- /dev/null +++ b/base/init.ps1 @@ -0,0 +1,6 @@ +# предварительная инициализация +docker volume create exam-prebase +docker volume create exam-base +docker network create exam-net +# docker-compose up +.\run.ps1 \ No newline at end of file diff --git a/base/run.ps1 b/base/run.ps1 new file mode 100644 index 0000000..beb5b85 --- /dev/null +++ b/base/run.ps1 @@ -0,0 +1,24 @@ +# Переменные +$container_name = "exam-base" +$image_name = "exam-base" +$build_name = "exam-base" +$code_location = "C:\Users\devuser\Documents\code\exam\base" + +# Остановить и удалить существующий контейнер +docker stop $container_name +docker rm $container_name + +# Удалить существующий образ +docker rmi $image_name + +# Перейти в каталог с проектом +Set-Location $code_location + +# Собрать jar с помощью Maven +# mvn clean package + +# Запустить контейнер с помощью docker-compose +docker-compose up + +# Пауза скрипта +Pause \ No newline at end of file diff --git a/base/scripts/init-database.sh b/base/scripts/init-database.sh new file mode 100644 index 0000000..c5eeaf3 --- /dev/null +++ b/base/scripts/init-database.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -e + +# создаем необходимые базы данных +psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL + CREATE USER moodle WITH PASSWORD 'moodle'; + CREATE DATABASE moodle; + GRANT ALL PRIVILEGES ON DATABASE moodle TO moodle; +EOSQL \ No newline at end of file diff --git a/moodle/SETUP.md b/moodle/SETUP.md new file mode 100644 index 0000000..0003045 --- /dev/null +++ b/moodle/SETUP.md @@ -0,0 +1,22 @@ +# получение дистрибутива +git clone -b MOODLE_405_STABLE git://git.moodle.org/moodle.git + +# postgres +настроен в отдельном контейнере +нужна база moodle +нужен пользователь moodle + +# PHP +``` +user# sudo apt-get install php-fpm php-curl php-gd php-xmlrpc php-intl php-xml php-zip php-mbstring php-soap php-pgsql + +``` + +# nginx + +берем контейнер докера с предустановленым nginx, +доставляем php, +клонируем дистрибутив moodle, +копируем файлы преднастроек nginx, moodle +монтируем том moodledata +даем соответствующие права директориям