mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-17 13:55:08 +00:00
Switch bench to dbench, added -s feature of dbench to bench. updated
Docker file with sudo and vim, and setup travis to run with said changes
This commit is contained in:
parent
bef1dee945
commit
d9dcc0dd01
4 changed files with 38 additions and 85 deletions
|
|
@ -2,7 +2,7 @@ language: python
|
|||
python:
|
||||
- "2.7"
|
||||
env:
|
||||
- DOCKER_COMPOSE_VERSION: 1.8.0
|
||||
- DOCKER_COMPOSE_VERSION: 1.22.0
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
|
@ -12,8 +12,7 @@ install:
|
|||
- ./bench setup docker
|
||||
- ./bench init frappe-bench
|
||||
- ./bench new-site site1.local
|
||||
- ./bench -c root "echo 127.0.0.1 site1.local >> /etc/hosts"
|
||||
- sudo su -c 'echo 127.0.0.1 site1.local >> /etc/hosts'
|
||||
- ./bench setup hosts'
|
||||
- pip install --upgrade virtualenv
|
||||
- virtualenv -p python3 testenv
|
||||
- source testenv/bin/activate
|
||||
|
|
|
|||
12
Dockerfile
12
Dockerfile
|
|
@ -5,13 +5,13 @@ FROM ubuntu:16.04
|
|||
LABEL MAINTAINER frappé
|
||||
|
||||
USER root
|
||||
RUN useradd -ms /bin/bash frappe
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y iputils-ping git build-essential python-setuptools python-dev libffi-dev libssl-dev \
|
||||
redis-tools redis-server software-properties-common libxrender1 libxext6 xfonts-75dpi xfonts-base \
|
||||
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 wget libmysqlclient-dev mariadb-client mariadb-common curl rlwrap redis-tools nano wkhtmltopdf python-pip
|
||||
RUN apt-get install -y iputils-ping git build-essential python-setuptools python-dev libffi-dev libssl-dev libjpeg8-dev \
|
||||
redis-tools redis-server software-properties-common libxrender1 libxext6 xfonts-75dpi xfonts-base 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 \
|
||||
wget libmysqlclient-dev mariadb-client mariadb-common curl rlwrap redis-tools nano wkhtmltopdf python-pip vim sudo
|
||||
RUN pip install --upgrade setuptools pip
|
||||
RUN useradd -ms /bin/bash -G sudo frappe && printf '# User rules for frappe\nfrappe ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/frappe
|
||||
|
||||
# Generate locale C.UTF-8 for mariadb and general locale data
|
||||
ENV LANG C.UTF-8
|
||||
|
|
@ -29,6 +29,6 @@ USER root
|
|||
RUN pip install -e bench-repo \
|
||||
&& npm install -g yarn \
|
||||
&& chown -R frappe:frappe /home/frappe/*
|
||||
|
||||
|
||||
USER frappe
|
||||
WORKDIR /home/frappe/frappe-bench
|
||||
|
|
|
|||
23
bench
23
bench
|
|
@ -1,23 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [[ $# -eq 0 ]]; then
|
||||
docker exec -it frappe bash
|
||||
elif [ "$1" == 'init' ]; then
|
||||
docker exec -it -u root frappe bash -c "cd /home/frappe && chown -R frappe:frappe ./*"
|
||||
docker exec -i frappe bash -c "cd .. && bench init frappe-bench --ignore-exist --skip-redis-config-generation"
|
||||
docker exec -i frappe bash -c "mv Procfile_docker Procfile && mv sites/common_site_config_docker.json sites/common_site_config.json && bench set-mariadb-host mariadb"
|
||||
elif [ "$1" == 'setup' ] && [ "$2" == 'docker' ]; then
|
||||
if [ "$3" == '--swarm-mode' ]; then
|
||||
echo "Docker swarm mode is not currently supported"
|
||||
else
|
||||
docker-compose up -d
|
||||
fi
|
||||
elif [ "$1" == '-c' ]; then
|
||||
shift
|
||||
user=$1
|
||||
shift
|
||||
docker exec -i -u "$user" frappe bash -c "$@"
|
||||
else
|
||||
IFS=" "
|
||||
docker exec -i frappe bash -c "bench $*"
|
||||
fi
|
||||
83
dbench
83
dbench
|
|
@ -1,57 +1,34 @@
|
|||
|
||||
#!/bin/bash
|
||||
|
||||
display_usage() {
|
||||
echo "$(basename "$0") [-h] [-c \"<command to be executed inside container>\"]"
|
||||
echo ''
|
||||
echo 'where:'
|
||||
echo ' -h show this help text'
|
||||
echo ' -c execute a command inside docker using docker exec'
|
||||
echo ' -s adds site-names to /etc/hosts file in the container to facilitate multisite access'
|
||||
echo ' init initializes frappe-bench adds a new-site bench-manager.local and installs the bench_manager app
|
||||
app onto it'
|
||||
}
|
||||
|
||||
if [[ $# -eq 0 ]]; then
|
||||
docker exec -it frappe bash
|
||||
|
||||
elif [ $1 == 'init' ]
|
||||
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 --ignore-exist --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 -u root frappe bash -c "apt-get install -y vim 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 "bench set-mariadb-host mariadb"
|
||||
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 --site site1.local install-app erpnext"
|
||||
|
||||
docker exec -it frappe bash
|
||||
elif [ "$1" == 'init' ]; then
|
||||
docker exec -it -u root frappe bash -c "cd /home/frappe && chown -R frappe:frappe ./*"
|
||||
docker exec -i frappe bash -c "cd .. && bench init frappe-bench --ignore-exist --skip-redis-config-generation"
|
||||
docker exec -i frappe bash -c "mv Procfile_docker Procfile && mv sites/common_site_config_docker.json sites/common_site_config.json && bench set-mariadb-host mariadb"
|
||||
elif [ "$1" == 'setup' ]; then
|
||||
if [ "$2" == 'docker' ]; then
|
||||
if [ "$3" == '--swarm-mode' ]; then
|
||||
echo "Docker swarm mode is not currently supported"
|
||||
else
|
||||
docker-compose up -d
|
||||
fi
|
||||
elif [ "$2" == 'hosts' ]; then
|
||||
a=$(cd frappe-bench && ls sites/*/site_config.json | grep -o '/.\+/')
|
||||
a="${a//$'\n'/ }"
|
||||
a=$(echo $a | tr -d / )
|
||||
result="127.0.0.1 ${a}"
|
||||
sudo echo $result >> /etc/hosts
|
||||
docker exec -u root -i frappe bash -c "echo ${result} | tee --append /etc/hosts"
|
||||
docker exec -itu root frappe bash -c "printf '# User rules for frappe\nfrappe ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/frappe"
|
||||
fi
|
||||
elif [ "$1" == '-c' ]; then
|
||||
shift
|
||||
user=$1
|
||||
shift
|
||||
docker exec -i -u "$user" frappe bash -c "$@"
|
||||
else
|
||||
while getopts ':hsc:' option; do
|
||||
case "$option" in
|
||||
h)
|
||||
display_usage
|
||||
exit
|
||||
;;
|
||||
c)
|
||||
docker exec -it frappe bash -c "bench $OPTARG"
|
||||
;;
|
||||
s)
|
||||
a=$(cd frappe-bench && ls sites/*/site_config.json | grep -o '/.\+/')
|
||||
a="${a//$'\n'/ }"
|
||||
a=$(echo $a | tr -d / )
|
||||
result="127.0.0.1 ${a}"
|
||||
echo $result
|
||||
docker exec -u root -i frappe bash -c "echo ${result} | tee --append /etc/hosts"
|
||||
docker exec -itu root frappe bash -c "printf '# User rules for frappe\nfrappe ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/frappe"
|
||||
;;
|
||||
\?)
|
||||
echo "Invalid option: -$OPTARG" >&2
|
||||
exit 1
|
||||
;;
|
||||
:)
|
||||
echo "Option -$OPTARG requires an argument." >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
IFS=" "
|
||||
docker exec -i frappe bash -c "bench $*"
|
||||
fi
|
||||
Loading…
Reference in a new issue