114 lines
2.5 KiB
Bash
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 |