This commit is contained in:
pipech 2017-12-22 07:09:21 +00:00 committed by GitHub
commit c99dff16ea
13 changed files with 132 additions and 64 deletions

View file

@ -1,40 +1,63 @@
#bench Dockerfile
FROM ubuntu:16.04 FROM ubuntu:16.04
MAINTAINER frappé MAINTAINER frappé
#install pre-requisites
USER root USER root
RUN apt-get update RUN apt-get update && apt-get install -y \
RUN apt-get install -y iputils-ping apt-transport-https \
RUN apt-get install -y git build-essential python-setuptools python-dev libffi-dev libssl-dev build-essential \
RUN apt-get install -y redis-tools software-properties-common libxrender1 libxext6 xfonts-75dpi xfonts-base curl \
RUN apt-get install -y libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev python-tk apt-transport-https libsasl2-dev libldap2-dev libtiff5-dev tcl8.6-dev tk8.6-dev git \
RUN apt-get install -y wget iputils-ping \
RUN wget https://bootstrap.pypa.io/get-pip.py && python get-pip.py libffi-dev \
RUN pip install --upgrade setuptools pip libfreetype6-dev \
RUN useradd -ms /bin/bash frappe libjpeg8-dev \
RUN apt-get install -y curl liblcms2-dev \
RUN apt-get install -y rlwrap libldap2-dev \
RUN apt-get install redis-tools libmysqlclient-dev \
RUN apt-get install -y nano libsasl2-dev \
libssl-dev \
libtiff5-dev \
libwebp-dev \
libxext6 \
libxrender1 \
mariadb-client \
mariadb-common \
nano \
python-dev \
python-setuptools \
python-tk \
redis-tools \
rlwrap \
software-properties-common \
sudo \
tcl8.6-dev \
tk8.6-dev \
wget \
wkhtmltopdf \
xfonts-75dpi \
xfonts-base \
zlib1g-dev \
&& rm -rf /var/lib/apt/lists/*
#install pip
RUN wget https://bootstrap.pypa.io/get-pip.py \
&& python get-pip.py \
&& pip install --upgrade setuptools pip
#nodejs #install nodejs
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 \ 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 \ && dpkg -i node.deb \
&& rm node.deb && rm node.deb
RUN apt-get install -y wkhtmltopdf
USER frappe #add users & sudoers
WORKDIR /home/frappe RUN useradd -ms /bin/bash frappe \
RUN git clone -b develop https://github.com/frappe/bench.git bench-repo && usermod -aG sudo frappe \
&& printf '# User rules for frappe\nfrappe ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/frappe \
&& mkdir /home/frappe/frappe-bench \
&& chown -R frappe:frappe /home/frappe/*
USER root COPY ./conf/frappe/* /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 frappe USER frappe
WORKDIR /home/frappe/frappe-bench WORKDIR /home/frappe/frappe-bench

View file

@ -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 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
docker exec -it frappe bash
3. First time setup
cd .. & . init.sh
#### Basic Usage ##### Password
- MariaDB
User : root
Pass : 123
- Sites
User : Administrator
Pass : admin
#### Basic Usage from Linux Host
##### Make sure your current directory is frappe_docker ##### Make sure your current directory is frappe_docker
1. First time setup 1. First time setup

19
conf/frappe/init.sh Normal file
View file

@ -0,0 +1,19 @@
#!/bin/bash
echo "----------------------- [ Install bench ] ---------------------------------"
git clone -b develop https://github.com/frappe/bench.git bench-repo
sudo pip install -e bench-repo
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

6
dbench
View file

@ -16,10 +16,10 @@ if [[ $# -eq 0 ]]; then
elif [ $1 == 'init' ] elif [ $1 == 'init' ]
then then
docker exec -i -u root frappe bash -c "cd /home/frappe && chown -R frappe:frappe ./*"
docker exec -it frappe bash -c "cd .. && bench init frappe-bench --skip-bench-mkdir --skip-redis-config-generation && cd frappe-bench" docker exec -it frappe bash -c "cd .. && bench init frappe-bench --skip-bench-mkdir --skip-redis-config-generation && cd frappe-bench"
docker exec -it frappe bash -c "mv Procfile_docker Procfile && mv sites/common_site_config_docker.json sites/common_site_config.json" docker exec -it frappe bash -c "mv /home/frappe/Procfile_docker /home/frappe/frappe-bench/Procfile"
docker exec -it -u root frappe bash -c "apt-get install vim && apt-get install sudo && usermod -aG sudo frappe && printf '# User rules for frappe\nfrappe ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/frappe" docker exec -it frappe bash -c "mv /home/frappe/common_site_config_docker.json /home/frappe/frappe-bench/sites/common_site_config.json"
docker exec -it -u root frappe bash -c "apt-get install vim"
docker exec -it frappe bash -c "bench set-mariadb-host mariadb" docker exec -it frappe bash -c "bench set-mariadb-host mariadb"
docker exec -it frappe bash -c "bench new-site site1.local" docker exec -it frappe bash -c "bench new-site site1.local"
docker exec -it frappe bash -c "bench get-app erpnext" docker exec -it frappe bash -c "bench get-app erpnext"

View file

@ -15,7 +15,7 @@ services:
image: redis:alpine image: redis:alpine
volumes: volumes:
- ./redis-conf/redis_cache.conf:/etc/conf.d/redis.conf - ./conf/redis-conf/redis_cache.conf:/etc/conf.d/redis.conf
command: ["redis-server","/etc/conf.d/redis.conf"] command: ["redis-server","/etc/conf.d/redis.conf"]
@ -25,7 +25,7 @@ services:
image: redis:alpine image: redis:alpine
volumes: volumes:
- ./redis-conf/redis_queue.conf:/etc/conf.d/redis.conf - ./conf/redis-conf/redis_queue.conf:/etc/conf.d/redis.conf
command: ["redis-server","/etc/conf.d/redis.conf"] command: ["redis-server","/etc/conf.d/redis.conf"]
@ -35,7 +35,7 @@ services:
image: redis:alpine image: redis:alpine
volumes: volumes:
- ./redis-conf/redis_socketio.conf:/etc/conf.d/redis.conf - ./conf/redis-conf/redis_socketio.conf:/etc/conf.d/redis.conf
command: ["redis-server","/etc/conf.d/redis.conf"] command: ["redis-server","/etc/conf.d/redis.conf"]
@ -43,7 +43,8 @@ services:
frappe: frappe:
volumes: volumes:
- ./frappe-bench:/home/frappe/frappe-bench - ./frappe-bench/apps:/home/frappe/frappe-bench/apps
- ./frappe-bench/sites:/home/frappe/frappe-bench/sites
build: . build: .
ports: ports:
- "8000:8000" #webserver_port - "8000:8000" #webserver_port