esoe
4 weeks ago
9 changed files with 131 additions and 1 deletions
@ -1,3 +1,27 @@ |
|||||||
# exam |
# exam |
||||||
|
Повторение материала и проверка знаний работников |
||||||
|
|
||||||
Повторение материала и проверка знаний работников по направлениям деятельности |
# Архитектура платформы |
||||||
|
## Серисы |
||||||
|
### вспомогательные: |
||||||
|
base - СУБД |
||||||
|
source - api для работы с СУБД |
||||||
|
storage - api для работы с файловой системой |
||||||
|
auth - авторизация пользователей (для администрирования или просмотра результатов) |
||||||
|
log - консолидированная работа с логами сервисов |
||||||
|
|
||||||
|
### целевые: |
||||||
|
quiz - прохождение теста/опроса |
||||||
|
learn - просмотр контента |
||||||
|
admin - администрирование платформы |
||||||
|
results - предоставление результатов |
||||||
|
moodle - |
||||||
|
|
||||||
|
## тома |
||||||
|
exam-base |
||||||
|
exam-prebase |
||||||
|
exam-log |
||||||
|
exam-storage |
||||||
|
|
||||||
|
## сети |
||||||
|
exam-net |
||||||
|
@ -0,0 +1,5 @@ |
|||||||
|
PG_CONTAINER_NAME='exam-base' |
||||||
|
POSTGRES_USER='exam' |
||||||
|
POSTGRES_PASSWORD='exam' |
||||||
|
POSTGRES_DB='exam' |
||||||
|
PGDATA='/data/exam' |
@ -0,0 +1,2 @@ |
|||||||
|
# exam-base |
||||||
|
миктосервис, предосавляющий доступ к postgres |
@ -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 |
@ -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" |
@ -0,0 +1,6 @@ |
|||||||
|
# предварительная инициализация |
||||||
|
docker volume create exam-prebase |
||||||
|
docker volume create exam-base |
||||||
|
docker network create exam-net |
||||||
|
# docker-compose up |
||||||
|
.\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 |
@ -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 |
@ -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…
Reference in new issue