Files
snippets/dev/dev.sh

114 lines
2.5 KiB
Bash

#!/bin/bash
# Actual version see https://gist.github.com/envoyr/d349fc746258d2a433cf3cf7e9ad0f0b
#
# Run in cli with:
# $ bash dev.sh
# Cloning repositories
git clone git@github.com:froxlor/bundle.git 2>/dev/null
git clone git@github.com:froxlor/framework.git 2>/dev/null
# Backend Auswahl
if [ -z "${BACKEND}" ]; then
echo "Kein Datenbank-Backend gesetzt."
PS3='Bitte wählen Sie ein Datenbank-Backend (1 oder 2): '
options=("mariadb" "sqlite")
select opt in "${options[@]}"
do
case $opt in
"mariadb") BACKEND="mariadb"; break ;;
"sqlite") BACKEND="sqlite"; break ;;
*) echo "Ungültige Wahl $REPLY";;
esac
done
fi
echo "Verwende Backend: ${BACKEND}"
# Write docker-compose.yml for sqlite
if [ ${BACKEND} == "sqlite" ]; then
cat > docker-compose.yml <<'EOF'
services:
froxlor:
build: .
environment:
DB_CONNECTION: sqlite
ports:
- 8000:8000
volumes:
- ./bundle:/var/www/html/froxlor
- ./framework:/var/www/html/framework
EOF
elif [ ${BACKEND} == "mariadb" ]; then
# Create .env file
printf "Enter MariaDB root password: "
stty -echo
read DB_ROOT_PASS
stty echo
printf "\n"
printf "Enter Froxlor DB password: "
stty -echo
read DB_PASS
stty echo
printf "\n"
cat > .env <<EOF
MARIADB_ROOT_PASSWORD=${DB_ROOT_PASS}
MARIADB_PASSWORD=${DB_PASS}
EOF
# Write docker-compose.yml for mariadb
cat > docker-compose.yml <<'EOF'
services:
froxlor:
build: .
environment:
DB_CONNECTION: mariadb
DB_HOST: db
DB_PORT: 3306
DB_DATABASE: froxlor
DB_USERNAME: root
DB_PASSWORD: ${MARIADB_ROOT_PASSWORD}
ports:
- 8000:8000
volumes:
- ./bundle:/var/www/html/froxlor
- ./framework:/var/www/html/framework
depends_on:
db:
condition: service_healthy
db:
image: mariadb
restart: always
environment:
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
MARIADB_DATABASE: froxlor
MARIADB_USER: froxlor
MARIADB_PASSWORD: ${MARIADB_PASSWORD}
ports:
- 3306:3306
volumes:
- ./database:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
start_period: 10s
interval: 10s
timeout: 5s
retries: 3
adminer:
image: adminer
restart: always
ports:
- 8080:8080
EOF
else
echo "No backend selected."
fi
echo "Finished! Starting with 'docker compose up', you can use with -d to run it in background. Press 'd' to detach from current session."
docker compose up --build