esoe
4 weeks ago
11 changed files with 246 additions and 8 deletions
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
$container_name = "moodle" |
||||
$image_name = "moodle" |
||||
$build_name = "moodle" |
||||
$code_location = "C:\Users\devuser\Documents\code\exam\moodle" |
||||
# тома |
||||
$moodle_data = "moodle-data" |
||||
$moodle_html = "moodle-html" |
||||
|
||||
# Остановить и удалить существующий контейнер |
||||
docker stop $container_name |
||||
docker rm $container_name |
||||
|
||||
# Удалить существующий образ |
||||
docker rmi $image_name |
||||
|
||||
# удалить тома |
||||
docker volume rm $moodle_data |
||||
docker volume rm $moodle_html |
||||
|
||||
docker builder prune --force |
@ -0,0 +1 @@
@@ -0,0 +1 @@
|
||||
Subproject commit 149a4779030de22fbe21bd70d35e1eea017d9ed4 |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
version: "3.7" |
||||
services: |
||||
moodle: |
||||
build: |
||||
context: ../moodle |
||||
dockerfile: dockerfile |
||||
tty: true |
||||
image: moodle |
||||
container_name: moodle |
||||
volumes: |
||||
- moodle-data:/var/moodledata |
||||
- moodle-html:/var/www/html |
||||
ports: |
||||
- "90:80" |
||||
- "9443:443" |
||||
restart: unless-stopped |
||||
volumes: |
||||
moodle-data: |
||||
external: true |
||||
moodle-html: |
||||
external: true |
||||
networks: |
||||
default: |
||||
name: exam-net |
||||
external: true |
||||
driver: bridge |
@ -0,0 +1,73 @@
@@ -0,0 +1,73 @@
|
||||
ARG VERSION=latest |
||||
FROM ubuntu:${VERSION} |
||||
|
||||
# Сведения о контейнере |
||||
LABEL author="esoe" |
||||
LABEL description="moodle image for exam" |
||||
LABEL version="1.0" |
||||
|
||||
# VOLUME ["/var/moodledata", "/var/www/html"] |
||||
# EXPOSE 80 443 |
||||
|
||||
# Let the container know that there is no tty |
||||
# ENV DEBIAN_FRONTEND noninteractive |
||||
|
||||
# This should be overridden on running moodle container |
||||
ENV MOODLE_URL http://moodle:80 |
||||
# ENV MOODLE_URL http://192.168.99.100:8080 |
||||
|
||||
COPY ./foreground-apache2.sh /etc/apache2/foreground.sh |
||||
|
||||
# обновление пакетов |
||||
RUN apt-get update -y |
||||
RUN apt-get -u upgrade -y |
||||
|
||||
# установка пакетов, необходимых для развертывания и работы moodle |
||||
RUN apt-get install pwgen -y |
||||
RUN apt-get install curl -y |
||||
RUN apt-get install git -y |
||||
RUN apt-get install unzip -y |
||||
RUN apt-get install vim -y |
||||
RUN apt-get install wget -y |
||||
RUN apt-get install postgresql-client -y |
||||
RUN apt-get install software-properties-common -y |
||||
|
||||
# установка php 8.1 |
||||
RUN add-apt-repository ppa:ondrej/php |
||||
RUN apt-get update |
||||
RUN apt-get install php8.1 -y |
||||
RUN apt-get install libapache2-mod-php8.1 -y |
||||
RUN apt-get install php8.1-fpm php8.1-curl php8.1-gd php8.1-xmlrpc php8.1-intl php8.1-xml php8.1-zip php8.1-mbstring php8.1-soap php8.1-pgsql -y |
||||
## настройка php |
||||
RUN echo "max_input_vars=5000" >> /etc/php/8.1/cli/php.ini |
||||
|
||||
# установка apache2 |
||||
RUN apt-get install apache2 -y |
||||
## дописываем в конец apache2.conf новый параметр |
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf |
||||
RUN echo "max_input_vars=5000" >> /etc/php/8.1/apache2/php.ini |
||||
|
||||
# подготовка пакета moodle |
||||
RUN echo "содержимое /var/www/html:" |
||||
## проверка содержимого /var/www/html |
||||
RUN ls --recursive /var/www/html |
||||
## очистить директорию /var/www/html перед скачиванием moodle |
||||
RUN rm -rf /var/www/html/* |
||||
## клонировать moodle |
||||
# RUN git clone -b MOODLE_405_STABLE https://git.in.moodle.com/moodle/moodle.git /var/www/html |
||||
COPY ./distro/moodle /var/www/html |
||||
## устанавливаем владельцем директории пользователя www-data |
||||
RUN chown -R www-data:www-data /var/www/html |
||||
|
||||
# Enable SSL, moodle requires it |
||||
## if using proxy, don't need actually secure connection |
||||
RUN a2enmod ssl && a2ensite default-ssl |
||||
|
||||
# запуск apache2 |
||||
## право на исполнение скрипта запуска apache2 |
||||
RUN chmod +x /etc/apache2/foreground.sh |
||||
## запуск apache2 |
||||
CMD ["bash","/etc/apache2/foreground.sh"] |
||||
|
||||
# далее: |
||||
# в ручную запускаем скрипт инсталяции moodle .\install |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash |
||||
# скрипт, используемый контейнером для запуска apache2 в фоновом режиме |
||||
|
||||
echo "placeholder" > /var/moodledata/placeholder |
||||
chown -R www-data:www-data /var/moodledata |
||||
chmod 777 /var/moodledata |
||||
|
||||
read pid cmd state ppid pgrp session tty_nr tpgid rest < /proc/self/stat |
||||
trap "kill -TERM -$pgrp; exit" EXIT TERM KILL SIGKILL SIGTERM SIGQUIT |
||||
|
||||
source /etc/apache2/envvars |
||||
tail -F /var/log/apache2/* & |
||||
exec apachectl -D FOREGROUND |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
# инициализация томов |
||||
docker volume create moodle-data |
||||
docker volume create moodle-html |
||||
|
||||
# .\run.ps1 |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
#!/bin/pwsh |
||||
|
||||
# Set up Moodle in container |
||||
|
||||
$adminUser = "admin" |
||||
$adminPassword = "admin" |
||||
$siteName = "exam" |
||||
$siteShort = "exam" |
||||
$lang = "ru" |
||||
|
||||
docker exec -it -u www-data moodle /usr/bin/php /var/www/html/admin/cli/install_database.php --agree-license --adminuser=$adminUser --adminpass=$adminPassword --fullname=$siteName --shortname=$siteShort --lang=$lang |
||||
|
||||
Write-Host "Admin account: $adminUser/$adminPassword" |
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
# Переменные |
||||
$container_name = "moodle" |
||||
$image_name = "moodle" |
||||
$build_name = "moodle" |
||||
$code_location = "C:\Users\devuser\Documents\code\exam\moodle" |
||||
|
||||
# Остановить и удалить существующий контейнер |
||||
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 -d |
||||
|
||||
# Пауза скрипта |
||||
# Pause |
||||
|
||||
# Запуск скрипта инсталяции moodle |
||||
# .\install.ps1 |
Loading…
Reference in new issue