Browse Source

moodle in setup

master
esoe 1 month ago
parent
commit
6b944a6317
  1. 26
      README.md
  2. 5
      base/.env
  3. 2
      base/README.md
  4. 29
      base/docker-compose.yaml
  5. 9
      base/dockerfile
  6. 6
      base/init.ps1
  7. 24
      base/run.ps1
  8. 9
      base/scripts/init-database.sh
  9. 22
      moodle/SETUP.md

26
README.md

@ -1,3 +1,27 @@ @@ -1,3 +1,27 @@
# exam
Повторение материала и проверка знаний работников
Повторение материала и проверка знаний работников по направлениям деятельности
# Архитектура платформы
## Серисы
### вспомогательные:
base - СУБД
source - api для работы с СУБД
storage - api для работы с файловой системой
auth - авторизация пользователей (для администрирования или просмотра результатов)
log - консолидированная работа с логами сервисов
### целевые:
quiz - прохождение теста/опроса
learn - просмотр контента
admin - администрирование платформы
results - предоставление результатов
moodle -
## тома
exam-base
exam-prebase
exam-log
exam-storage
## сети
exam-net

5
base/.env

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
PG_CONTAINER_NAME='exam-base'
POSTGRES_USER='exam'
POSTGRES_PASSWORD='exam'
POSTGRES_DB='exam'
PGDATA='/data/exam'

2
base/README.md

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
# exam-base
миктосервис, предосавляющий доступ к postgres

29
base/docker-compose.yaml

@ -0,0 +1,29 @@ @@ -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

9
base/dockerfile

@ -0,0 +1,9 @@ @@ -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"

6
base/init.ps1

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
# предварительная инициализация
docker volume create exam-prebase
docker volume create exam-base
docker network create exam-net
# docker-compose up
.\run.ps1

24
base/run.ps1

@ -0,0 +1,24 @@ @@ -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

9
base/scripts/init-database.sh

@ -0,0 +1,9 @@ @@ -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

22
moodle/SETUP.md

@ -0,0 +1,22 @@ @@ -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
даем соответствующие права директориям
Loading…
Cancel
Save