From 123610d33b9b1810d0c427c4df47f99887892021 Mon Sep 17 00:00:00 2001 From: ChronosX88 Date: Tue, 6 Apr 2021 16:54:49 +0300 Subject: [PATCH] Add devzone config --- devzone/devzone.sh | 69 +++++++++++++++++++++++++++++++++++++ devzone/docker-compose.yaml | 10 ++++++ 2 files changed, 79 insertions(+) create mode 100755 devzone/devzone.sh create mode 100644 devzone/docker-compose.yaml diff --git a/devzone/devzone.sh b/devzone/devzone.sh new file mode 100755 index 0000000..138b48c --- /dev/null +++ b/devzone/devzone.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +# Actually this isn't needed as we extract script path later and use it +# for everything, but anyway! +if [ "$0" != "./devzone.sh" ]; then + echo "This script should be launched as './devzone.sh'!" + exit 1 +fi + +# Check for OS first. On macOS greadlink should be used instead of +# readlink. +READLINK="/bin/readlink" +OS=$(uname -s) +if [ "${OS}" == "Darwin" ]; then + READLINK="/usr/local/bin/greadlink" + if [ ! -f "${READLINK}" ]; then + echo "GNU readlink is required for macOS. Please, install coreutils with brew." + exit 1 + fi +fi + +SCRIPT_PATH=$(dirname "`${READLINK} -f "${BASH_SOURCE}"`") +echo "devzone script path: ${SCRIPT_PATH}" + +# This values might or might not be filled by OS. +# And it MUST NOT be filled on macOS. Docker is so convenient... +if [ "${OS}" != "Darwin" ]; then + USER_ID=$(id -u) + GROUP_ID=$(id -g) +else + echo "macOS users have no need in setting user and group ID" +fi + +down() { + echo "Cleaning up development environment..." + docker-compose down --remove-orphans +} + +run() { + echo "Getting development environment up and running with docker-compose..." + # ToDo: checks? + USER_ID=$USER_ID GROUP_ID=$GROUP_ID docker-compose -p devzone_zirconium up + if [ $? -ne 0 ]; then + echo "Something went wrong. Read previous messages carefully!" + exit 1 + fi + echo "Development zone shutted down." +} + + +help() { + echo "Developers helper script." + echo "" + echo "Available subcommands:" + echo -e "\tdown\t\t\t\tClear development environment from data." + echo -e "\trun\t\t\t\tStart development zone required servers (databases, etc.)." +} + +case $1 in + down) + down + ;; + run) + run + ;; + *) + help + ;; +esac diff --git a/devzone/docker-compose.yaml b/devzone/docker-compose.yaml new file mode 100644 index 0000000..ef6a289 --- /dev/null +++ b/devzone/docker-compose.yaml @@ -0,0 +1,10 @@ +version: "2.4" + +services: + mongo: + image: "mongo:4.2.3" + ports: + - "27017-27019:27017-27019" + environment: + MONGO_INITDB_ROOT_USERNAME: "root" + MONGO_INITDB_ROOT_PASSWORD: "root"