From 950647a18289cf577abe046c3c9f2d9e87f1fdac Mon Sep 17 00:00:00 2001 From: vishalseshagiri Date: Mon, 2 Oct 2017 09:32:03 +0530 Subject: [PATCH] git diff bb01cc827732524ef9a2aa94036f0f8d9d6e78e2 a32c9230dd726399c59f5849d7e0a25b1e3a281a | git apply --reject --whitespace=fix --- .travis.yml | 18 +++++++ Dockerfile | 16 +++--- build-container.sh | 7 --- conf/mariadb-conf.d/my.cnf | 15 +++--- dbench | 27 ++++++++++ docker-compose.yml | 50 ++++++++++++++++--- docker-enter.sh | 3 -- frappe-bench/Procfile_docker | 8 +++ .../sites/common_site_config_docker.json | 19 +++++++ frappe/setup.sh | 9 ---- redis-conf/pids/redis_cache.pid | 1 + redis-conf/pids/redis_queue.pid | 1 + redis-conf/pids/redis_socketio.pid | 1 + redis-conf/redis_cache.conf | 8 +++ redis-conf/redis_queue.conf | 3 ++ redis-conf/redis_socketio.conf | 3 ++ 16 files changed, 145 insertions(+), 44 deletions(-) create mode 100644 .travis.yml delete mode 100755 build-container.sh create mode 100755 dbench delete mode 100755 docker-enter.sh create mode 100644 frappe-bench/Procfile_docker create mode 100644 frappe-bench/sites/common_site_config_docker.json delete mode 100755 frappe/setup.sh create mode 100644 redis-conf/pids/redis_cache.pid create mode 100644 redis-conf/pids/redis_queue.pid create mode 100644 redis-conf/pids/redis_socketio.pid create mode 100644 redis-conf/redis_cache.conf create mode 100644 redis-conf/redis_queue.conf create mode 100644 redis-conf/redis_socketio.conf diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..18e37acf --- /dev/null +++ b/.travis.yml @@ -0,0 +1,18 @@ +language: python +python: + - "2.7" + +services: + - docker + +install: + -docker-compose build + -docker-compose up -d + +script: + -docker-compose ps | grep -i frappe + -docker-compose ps | grep -i redis-cache + -docker-compose ps | grep -i redis-queue + -docker-compose ps | grep -i redis-socketio + -docker-compose ps | grep -i mariadb + # -python test.py diff --git a/Dockerfile b/Dockerfile index bdd68d79..62fc03e8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,7 +16,7 @@ RUN pip install --upgrade setuptools pip RUN useradd -ms /bin/bash frappe RUN apt-get install -y curl RUN apt-get install -y rlwrap -RUN apt-get install redis-server +RUN apt-get install redis-tools RUN apt-get install -y nano @@ -29,14 +29,12 @@ RUN apt-get install -y wkhtmltopdf USER frappe WORKDIR /home/frappe +RUN git clone -b develop https://github.com/vishalseshagiri/bench.git bench-repo USER root -RUN cd /home/frappe +RUN pip install -e bench-repo +RUN apt-get install -y libmysqlclient-dev mariadb-client mariadb-common +RUN chown -R frappe:frappe /home/frappe/* -#USER root -#RUN pip install -e bench-repo -#RUN apt-get install -y libmysqlclient-dev mariadb-client mariadb-common -#RUN chown -R frappe:frappe /home/frappe - -#USER frappe -#RUN bench init frappe-bench && cd frappe-bench +USER frappe +WORKDIR /home/frappe/frappe-bench diff --git a/build-container.sh b/build-container.sh deleted file mode 100755 index df8a74b6..00000000 --- a/build-container.sh +++ /dev/null @@ -1,7 +0,0 @@ -echo "Enter a password for your database " -read DB_PASS - -echo 'export DB_PASS='$DB_PASS >> ~/.bashrc -source ~/.bashrc - -docker-compose up -d diff --git a/conf/mariadb-conf.d/my.cnf b/conf/mariadb-conf.d/my.cnf index 1bb86eee..9cc98d88 100644 --- a/conf/mariadb-conf.d/my.cnf +++ b/conf/mariadb-conf.d/my.cnf @@ -3,19 +3,20 @@ [client] # Default is Latin1, if you need UTF-8 set this (also in server section) -#default-character-set = utf8 +#default-character-set = utf8 [mysqld] # # * Character sets -# +# # Default is Latin1, if you need UTF-8 set all this (also in client section) # -#character-set-server = utf8 -#collation-server = utf8_general_ci -#character_set_server = utf8 -#collation_server = utf8_general_ci +#character-set-server = utf8 +#collation-server = utf8_general_ci +#character_set_server = utf8 +#collation_server = utf8_general_ci # Import all .cnf files from configuration directory +bind-address = 0.0.0.0 !includedir /etc/mysql/mariadb.conf.d/ @@ -29,5 +30,3 @@ collation-server = utf8mb4_unicode_ci [mysql] default-character-set = utf8mb4 - - diff --git a/dbench b/dbench new file mode 100755 index 00000000..d85e1728 --- /dev/null +++ b/dbench @@ -0,0 +1,27 @@ +usage="$(basename "$0") [-h] [-c ""] + +where: + -h show this help text + -c execute a command inside docker using docker exec" + +if [[ $# -eq 0 ]]; then + temp="docker exec -it frappe bash" + $temp +else + while getopts ':hc:' option; do + echo $option + case "$option" in + h) echo "$usage" + exit + ;; + c) seed=$OPTARG + temp="docker exec frappe bash -c 'su frappe -c \"bench $OPTARG\"; exec \"${SHELL:-sh}\"'" + exec="true" + ;; + esac + done + if [[ "$exec" == "true" ]]; then + $temp + fi + shift $((OPTIND - 1)) +fi diff --git a/docker-compose.yml b/docker-compose.yml index 9e1c8f3a..21aa75ab 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,28 +3,62 @@ services: mariadb: image: "mariadb" environment: - - MYSQL_ROOT_PASSWORD=${DB_PASS} + - MYSQL_ROOT_PASSWORD=123 - MYSQL_USER=root volumes: - ./conf/mariadb-conf.d:/etc/mysql/conf.d ports: - "3306:3306" + container_name: mariadb - redis: - image: "redis:alpine" + redis-cache: + image: redis:alpine + + volumes: + - ./redis-conf/redis_cache.conf:/etc/conf.d/redis.conf + + command: ["redis-server","/etc/conf.d/redis.conf"] + + container_name: redis-cache + + redis-queue: + image: redis:alpine + + volumes: + - ./redis-conf/redis_queue.conf:/etc/conf.d/redis.conf + + command: ["redis-server","/etc/conf.d/redis.conf"] + + container_name: redis-queue + + redis-socketio: + image: redis:alpine + + volumes: + - ./redis-conf/redis_socketio.conf:/etc/conf.d/redis.conf + + command: ["redis-server","/etc/conf.d/redis.conf"] + + container_name: redis-socketio frappe: volumes: - - ./frappe:/home/frappe + - ./frappe-bench:/home/frappe/frappe-bench build: . ports: - - "8000:8000" + - "8000:8000" stdin_open: true tty: true links: - - redis + - redis-cache + - redis-queue + - redis-socketio - mariadb depends_on: - mariadb - - redis - + - redis-cache + - redis-queue + - redis-socketio + container_name: frappe + +#TODO: bind ports of the redis and frappe containers diff --git a/docker-enter.sh b/docker-enter.sh deleted file mode 100755 index a6f83c72..00000000 --- a/docker-enter.sh +++ /dev/null @@ -1,3 +0,0 @@ -app_id=`docker ps | grep docker_frappe | awk {'print $1'}` - -docker exec -it $app_id bash -c 'su frappe; exec "${SHELL:-sh}"' diff --git a/frappe-bench/Procfile_docker b/frappe-bench/Procfile_docker new file mode 100644 index 00000000..e2a5bd93 --- /dev/null +++ b/frappe-bench/Procfile_docker @@ -0,0 +1,8 @@ +web: bench serve --port 8000 + +socketio: /usr/bin/node apps/frappe/socketio.js +watch: bench watch +schedule: bench schedule +worker_short: bench worker --queue short +worker_long: bench worker --queue long +worker_default: bench worker --queue default diff --git a/frappe-bench/sites/common_site_config_docker.json b/frappe-bench/sites/common_site_config_docker.json new file mode 100644 index 00000000..11897e32 --- /dev/null +++ b/frappe-bench/sites/common_site_config_docker.json @@ -0,0 +1,19 @@ +{ + "auto_update": false, + "background_workers": 1, + "db_host": "mariadb", + "file_watcher_port": 6787, + "frappe_user": "frappe", + "gunicorn_workers": 4, + "rebase_on_pull": false, + "redis_cache": "redis://redis-cache:13000", + "redis_queue": "redis://redis-queue:11000", + "redis_socketio": "redis://redis-socketio:12000", + "restart_supervisor_on_update": false, + "root_password": "123", + "serve_default_site": true, + "shallow_clone": true, + "socketio_port": 9000, + "update_bench_on_update": true, + "webserver_port": 8000 +} \ No newline at end of file diff --git a/frappe/setup.sh b/frappe/setup.sh deleted file mode 100755 index 4538d09b..00000000 --- a/frappe/setup.sh +++ /dev/null @@ -1,9 +0,0 @@ -#USER root -cd /home/frappe -git clone https://github.com/frappe/bench bench-repo -pip install -e bench-repo -apt-get install -y libmysqlclient-dev mariadb-client mariadb-common -chown -R frappe:frappe /home/frappe - -#USER frappe -su frappe diff --git a/redis-conf/pids/redis_cache.pid b/redis-conf/pids/redis_cache.pid new file mode 100644 index 00000000..209e3ef4 --- /dev/null +++ b/redis-conf/pids/redis_cache.pid @@ -0,0 +1 @@ +20 diff --git a/redis-conf/pids/redis_queue.pid b/redis-conf/pids/redis_queue.pid new file mode 100644 index 00000000..a45fd52c --- /dev/null +++ b/redis-conf/pids/redis_queue.pid @@ -0,0 +1 @@ +24 diff --git a/redis-conf/pids/redis_socketio.pid b/redis-conf/pids/redis_socketio.pid new file mode 100644 index 00000000..f04c001f --- /dev/null +++ b/redis-conf/pids/redis_socketio.pid @@ -0,0 +1 @@ +29 diff --git a/redis-conf/redis_cache.conf b/redis-conf/redis_cache.conf new file mode 100644 index 00000000..7e1f9265 --- /dev/null +++ b/redis-conf/redis_cache.conf @@ -0,0 +1,8 @@ +dbfilename redis_cache.rdb +bind 0.0.0.0 +port 13000 +maxmemory 292mb +maxmemory-policy allkeys-lru +appendonly no + +save "" diff --git a/redis-conf/redis_queue.conf b/redis-conf/redis_queue.conf new file mode 100644 index 00000000..b4f96cb9 --- /dev/null +++ b/redis-conf/redis_queue.conf @@ -0,0 +1,3 @@ +dbfilename redis_queue.rdb +bind 0.0.0.0 +port 11000 diff --git a/redis-conf/redis_socketio.conf b/redis-conf/redis_socketio.conf new file mode 100644 index 00000000..1fff87ef --- /dev/null +++ b/redis-conf/redis_socketio.conf @@ -0,0 +1,3 @@ +dbfilename redis_socketio.rdb +bind 0.0.0.0 +port 12000