From 8ac5f3e1abaeaee2f65e42353447c49d714c0aed Mon Sep 17 00:00:00 2001 From: Pooria Alaei Date: Tue, 25 Oct 2022 04:03:36 +0330 Subject: [PATCH] add redis service --- bin/prestainstall.sh | 97 +++++++++++++++++++++++++++++++++++++++++++ docker-compose-bu.yml | 66 +++++++++++++++++++++++++++++ docker-compose.yml | 9 ++++ pooria | 2 + 4 files changed, 174 insertions(+) create mode 100644 bin/prestainstall.sh create mode 100644 docker-compose-bu.yml create mode 100644 pooria diff --git a/bin/prestainstall.sh b/bin/prestainstall.sh new file mode 100644 index 0000000..13f0c62 --- /dev/null +++ b/bin/prestainstall.sh @@ -0,0 +1,97 @@ +#!/usr/bin/env bash +APP_NAME='' +DOMAIN='' +EPACE=' ' +SAMPLE='' + +echow(){ + FLAG=${1} + shift + echo -e "\033[1m${EPACE}${FLAG}\033[0m${@}" +} + +help_message(){ + echo -e "\033[1mOPTIONS\033[0m" + echow '-A, --app [app_name] -D, --domain [DOMAIN_NAME]' + echo "${EPACE}${EPACE}Example: appinstall.sh -A wordpress -D example.com" + echo "${EPACE}${EPACE}Example: appinstall.sh -A prestashop -D example.com" + echow '-H, --help' + echo "${EPACE}${EPACE}Display help and exit." + exit 0 +} + +check_input(){ + if [ -z "${1}" ]; then + help_message + exit 1 + fi +} + +set_phpmemory(){ + if [ "${1}" = 'magento' ]; then + PHP_INI=$(docker compose exec -T litespeed su -c "php -i | grep 'Loaded Configuration File' | cut -d' ' -f5 " | tr -d '\r') + PHP_MEMORY=$(docker compose exec -T litespeed su -c "cat $PHP_INI | grep memory_limit" | tr -d '\r') + docker compose exec -T litespeed su -c "sed -i 's/^memory_limit.*/memory_limit = 755M/g' $PHP_INI" + echo PHP_INI $PHP_INI + echo PHP_MEMORY $PHP_MEMORY + fi +} + +revert_phpmemory(){ + if [ "${1}" = 'magento' ]; then + docker compose exec -T litespeed /bin/bash -c "sed -i 's/^memory_limit.*/$PHP_MEMORY/g' $PHP_INI" + fi +} + + +install_packages(){ + if [ "${1}" = 'wordpress' ]; then + docker compose exec -T litespeed /bin/bash -c "pkginstallctl.sh --package ed" + docker compose exec -T litespeed /bin/bash -c "pkginstallctl.sh --package unzip" + #elif [ "${1}" = 'magento' ]; then + # docker compose exec -T litespeed /bin/bash -c "pkginstallctl.sh --package composer" + # docker compose exec -T litespeed /bin/bash -c "pkginstallctl.sh --package unzip" + # docker compose exec -T litespeed /bin/bash -c "pkginstallctl.sh --package git" + elif [ "${1}" = 'prestashop' ]; then + docker compose exec -T litespeed /bin/bash -c "pkginstallctl.sh --package unzip" + fi +} + +app_download(){ + set_phpmemory ${1} + install_packages ${1} + docker compose exec -T litespeed bash -c "appinstallctl.sh --app ${1} --domain ${2} ${3}" + revert_phpmemory ${1} + bash bin/webadmin.sh -r + exit 0 +} + +main(){ + app_download "${APP_NAME}" "${DOMAIN}" "${SAMPLE}" +} + +check_input ${1} +while [ ! -z "${1}" ]; do + case ${1} in + -[hH] | -help | --help) + help_message + ;; + -[aA] | -app | --app) shift + check_input "${1}" + APP_NAME="${1}" + ;; + -[dD] | -domain | --domain) shift + check_input "${1}" + DOMAIN="${1}" + ;; + -[sS] | --sample) + SAMPLE='-S' + ;; + *) + help_message + ;; + esac + shift +done + +main diff --git a/docker-compose-bu.yml b/docker-compose-bu.yml new file mode 100644 index 0000000..c0531b4 --- /dev/null +++ b/docker-compose-bu.yml @@ -0,0 +1,66 @@ +version: '3' +services: + redis: + image: 'bitnami/redis:latest' + environment: + - ALLOW_EMPTY_PASSWORD=yes + networks: + - default + ports: + - "6379:6379" + restart: always + mysql: + image: mariadb:10.5.9 + logging: + driver: none + command: --max_allowed_packet=256M + volumes: + - "./data/db:/var/lib/mysql:delegated" + environment: + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + MYSQL_DATABASE: ${MYSQL_DATABASE} + MYSQL_USER: ${MYSQL_USER} + MYSQL_PASSWORD: ${MYSQL_PASSWORD} + restart: always + networks: + - default + litespeed: + build: + context: . + dockerfile: Dockerfile + image: litespeedtech/openlitespeed:${OLS_VERSION}-${PHP_VERSION} + logging: + driver: none + env_file: + - .env + volumes: + - ./lsws/conf:/usr/local/lsws/conf + - ./lsws/admin-conf:/usr/local/lsws/admin/conf + - ./bin/container:/usr/local/bin + - ./sites:/var/www/vhosts/ + - ./acme:/root/.acme.sh/ + - ./logs:/usr/local/lsws/logs/ + ports: + - 80:80 + - 443:443 + - 443:443/udp + - 7080:7080 + restart: always + environment: + DATABASE_HOST: mysql + TZ: ${TimeZone} + networks: + - default + phpmyadmin: + image: bitnami/phpmyadmin:5.2.0-debian-11-r43 + ports: + - 8080:8080 + - 8443:8443 + environment: + DATABASE_HOST: mysql + restart: always + networks: + - default +networks: + default: + driver: bridge diff --git a/docker-compose.yml b/docker-compose.yml index 62823d2..fd9f12c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,14 @@ version: '3' services: + redis: + image: 'bitnami/redis:latest' + environment: + - ALLOW_EMPTY_PASSWORD=yes + networks: + - default + ports: + - "6379:6379" + restart: always mysql: image: mariadb:10.5.9 logging: diff --git a/pooria b/pooria new file mode 100644 index 0000000..223a956 --- /dev/null +++ b/pooria @@ -0,0 +1,2 @@ +RUN apt-get update && apt-get install -y python3 +WORKDIR /var