diff --git a/Dockerfile b/Dockerfile index 2b0507b2..8fff2f16 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ - #bench Dockerfile FROM ubuntu:16.04 MAINTAINER frappé +#install pre-requisites USER root RUN apt-get update RUN apt-get install -y iputils-ping @@ -19,22 +19,33 @@ RUN apt-get install -y rlwrap RUN apt-get install redis-tools RUN apt-get install -y nano - -#nodejs +#install nodejs +USER root RUN apt-get install curl RUN curl https://deb.nodesource.com/node_6.x/pool/main/n/nodejs/nodejs_6.7.0-1nodesource1~xenial1_amd64.deb > node.deb \ && dpkg -i node.deb \ && rm node.deb RUN apt-get install -y wkhtmltopdf +#clone bench repo USER frappe WORKDIR /home/frappe RUN git clone -b develop https://github.com/frappe/bench.git bench-repo +#install bench USER root RUN pip install -e bench-repo RUN apt-get install -y libmysqlclient-dev mariadb-client mariadb-common +RUN mkdir /home/frappe/frappe-bench RUN chown -R frappe:frappe /home/frappe/* +#install sudo and add sudoers +USER root +RUN apt-get install sudo \ + && usermod -aG sudo frappe \ + && printf '# User rules for frappe\nfrappe ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/frappe + +COPY ./conf/frappe/* /home/frappe/ + USER frappe WORKDIR /home/frappe/frappe-bench diff --git a/README.md b/README.md index de697048..2b8fb651 100644 --- a/README.md +++ b/README.md @@ -98,9 +98,34 @@ Express dependency between services, which has two effects: Note: Please do not remove the bench-repo directory the above commands will create +#### Basic Usage from Windows Hosr +1. Command to start all the containers + docker-compose start + +2. Command to enter your container -#### Basic Usage + docker exec -it frappe bash + +3. First time setup + + cd .. & . init.sh + + +##### Password +- MariaDB + + User : root + + Pass : 123 + +- Sites + + User : Administrator + + Pass : admin + +#### Basic Usage from Linux Host ##### Make sure your current directory is frappe_docker 1. First time setup diff --git a/frappe-bench/Procfile_docker b/conf/frappe/Procfile_docker similarity index 79% rename from frappe-bench/Procfile_docker rename to conf/frappe/Procfile_docker index e2a5bd93..6851b466 100644 --- a/frappe-bench/Procfile_docker +++ b/conf/frappe/Procfile_docker @@ -1,8 +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 +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 \ No newline at end of file diff --git a/frappe-bench/sites/common_site_config_docker.json b/conf/frappe/common_site_config_docker.json similarity index 96% rename from frappe-bench/sites/common_site_config_docker.json rename to conf/frappe/common_site_config_docker.json index cdc9d198..84b11327 100644 --- a/frappe-bench/sites/common_site_config_docker.json +++ b/conf/frappe/common_site_config_docker.json @@ -1,20 +1,20 @@ -{ - "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, - "admin_password": "admin" +{ + "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, + "admin_password": "admin" } \ No newline at end of file diff --git a/conf/frappe/init.sh b/conf/frappe/init.sh new file mode 100644 index 00000000..1fdee540 --- /dev/null +++ b/conf/frappe/init.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +echo "----------------------- [ init bench ] ---------------------------------" +bench init frappe-bench --skip-bench-mkdir --skip-redis-config-generation +echo "----------------------- [ config bench ] ---------------------------------" +cd frappe-bench +mv /home/frappe/Procfile_docker /home/frappe/frappe-bench/Procfile +mv /home/frappe/common_site_config_docker.json /home/frappe/frappe-bench/sites/common_site_config.json +bench set-mariadb-host mariadb +echo "----------------------- [ new site ] ---------------------------------" +bench new-site site1.local --mariadb-root-password 123 --admin-password frappe +echo "----------------------- [ install erpnext ] ---------------------------------" +bench get-app erpnext https://github.com/frappe/erpnext +bench --site site1.local install-app erpnext +echo "----------------------- [ bench update ] ---------------------------------" +bench update diff --git a/docker-compose.yml b/docker-compose.yml index a8beba0b..726476f4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -43,7 +43,8 @@ services: frappe: volumes: - - ./frappe-bench:/home/frappe/frappe-bench + - ./frappe-bench/apps:/home/frappe/frappe-bench/apps + - ./frappe-bench/sites:/home/frappe/frappe-bench/sites build: . ports: - "8000:8000" #webserver_port