esoe
1 month ago
9 changed files with 131 additions and 1 deletions
@ -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 |
||||
|
@ -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' |
@ -0,0 +1,2 @@
@@ -0,0 +1,2 @@
|
||||
# exam-base |
||||
миктосервис, предосавляющий доступ к postgres |
@ -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 |
@ -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" |
@ -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 |
@ -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 |
@ -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 |
@ -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…
Reference in new issue