From f273cddc3afec9decede22eca27073f51c44e440 Mon Sep 17 00:00:00 2001 From: Sergiu Weisz <sergiu121@gmail.com> Date: Mon, 10 Jul 2023 13:34:09 +0200 Subject: [PATCH] Add Moodle based infrastructure template --- moodle/.env | 11 ++++ moodle/docker-compose.yml | 118 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 moodle/.env create mode 100644 moodle/docker-compose.yml diff --git a/moodle/.env b/moodle/.env new file mode 100644 index 0000000..42cb398 --- /dev/null +++ b/moodle/.env @@ -0,0 +1,11 @@ +################## +# Backend Config # +################## + +# Django secret key +SECRET_KEY_BACKEND=another-very-secret-key +GITLAB_URL=https://gitlab.com +MINIO_ACCESS_KEY=1234 +MINIO_SECRET_KEY=123456789 +DATABASE_USER_BACKEND=anotherDatabaseUser +DATABASE_PASSWORD_BACKEND=password diff --git a/moodle/docker-compose.yml b/moodle/docker-compose.yml new file mode 100644 index 0000000..b12ead7 --- /dev/null +++ b/moodle/docker-compose.yml @@ -0,0 +1,118 @@ +# Copyright VMware, Inc. +# SPDX-License-Identifier: APACHE-2.0 + +version: "3" +services: + + backend: + image: jokeswar/vmchecker_api:master + restart: always + depends_on: + - database-backend + - storage-backend + environment: + GITLAB_URL: "${GITLAB_URL}" + SUBMISSION_STORAGE_TYPE: "MINIO" + MINIO_ADDRESS: "storage-backend:9000" + MINIO_ACCESS_KEY: "${MINIO_ACCESS_KEY}" + MINIO_SECRET_KEY: "${MINIO_SECRET_KEY}" + DATABASE_NAME: "backend" + DATABASE_USER: "root" + DATABASE_PASSWORD: "${DATABASE_PASSWORD_BACKEND}" + DATABASE_HOST: "database-backend" + DATABASE_PORT: "5432" + SECRET_KEY: "${SECRET_KEY_BACKEND}" + UWSGI_PROCESS_COUNT: "2" + logging: + driver: "json-file" + options: + max-size: "5m" + networks: + - database-backend-network + - storage-backend-network + - backend-network + + database-backend: + image: postgres:12.0-alpine + restart: always + environment: + POSTGRES_DB: "backend" + POSTGRES_USER: "root" + POSTGRES_PASSWORD: "${DATABASE_PASSWORD_BACKEND}" + volumes: + - db-data:/var/lib/postgresql/data + networks: + - database-backend-network + + storage-backend: + image: minio/minio:RELEASE.2022-10-24T18-35-07Z + restart: always + command: [ "server", "/data" ] + environment: + MINIO_ACCESS_KEY: "${MINIO_ACCESS_KEY}" + MINIO_SECRET_KEY: "${MINIO_SECRET_KEY}" + volumes: + - storage-data:/data + networks: + - storage-backend-network + + mariadb: + image: docker.io/bitnami/mariadb:10.6 + restart: always + environment: + # ALLOW_EMPTY_PASSWORD is recommended only for development. + - ALLOW_EMPTY_PASSWORD=yes + - MARIADB_USER=bn_moodle + - MARIADB_DATABASE=bitnami_moodle + - MARIADB_CHARACTER_SET=utf8mb4 + - MARIADB_COLLATE=utf8mb4_unicode_ci + networks: + - backend-network + volumes: + - 'mariadb_data:/bitnami/mariadb' + + runner: + image: gitlab/gitlab-runner:latest + restart: always + privileged: true + networks: + - runner-network + volumes: + - 'runner_volume:/etc/gitlab-runner' + - '/var/run/docker.sock:/var/run/docker.sock' + + moodle: + image: docker.io/bitnami/moodle:4.2 + restart: always + ports: + - '80:8080' + - '443:8443' + environment: + - MOODLE_DATABASE_HOST=mariadb + - MOODLE_DATABASE_PORT_NUMBER=3306 + - MOODLE_DATABASE_USER=bn_moodle + - MOODLE_DATABASE_NAME=bitnami_moodle + # ALLOW_EMPTY_PASSWORD is recommended only for development. + - ALLOW_EMPTY_PASSWORD=yes + networks: + - backend-network + volumes: + - 'moodle_data:/bitnami/moodle' + - 'moodledata_data:/bitnami/moodledata' + depends_on: + - mariadb + +volumes: + storage-data: + db-data: + openldap_data: + mariadb_data: + moodle_data: + moodledata_data: + runner_volume: + +networks: + database-backend-network: + storage-backend-network: + backend-network: + runner-network: -- GitLab