mirror of
https://github.com/frappe/frappe_docker.git
synced 2024-12-24 11:05:29 +00:00
2b1334d5a5
This PR adds the `bench` script, which aims for near parity with frappe bench, it makes setting up far easier, because instead of running `./dbench -c "new-site site1.local"` you only white what you would if bench was installed on the local system (i.e. `./bench new-site site1.local`), it also adds other features as well.
52 lines
2.4 KiB
Bash
Executable File
52 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [[ $# -eq 0 ]]; then
|
|
docker exec -it frappe bash
|
|
elif [ "$1" == 'init' ]; then
|
|
docker exec -itu root frappe bash -c "cd /home/frappe && chown -R frappe:frappe ./*"
|
|
docker exec -i frappe bash -c "cd .. && bench init $2 --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}"
|
|
echo $result | sudo tee -a /etc/hosts
|
|
docker exec -iu root 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 -iu "$user" frappe bash -c "$@"
|
|
elif [ "$1" == '-h' ]; then
|
|
echo "$0 [-h] | [ -c frappe | root <command to run> ] [ <command to send to bench> ]"
|
|
echo ""
|
|
echo "$0 extends the Frappe Bench tool, and is used like it. However, it extends the tool in a few places."
|
|
echo "Usage:"
|
|
echo " $0"
|
|
echo " Launches you into an interactive shell in the container as user frappe"
|
|
echo " $0 init bench-folder-name"
|
|
echo " Runs \"bench init\" along with some other commands"
|
|
echo " $0 setup docker"
|
|
echo " Starts and builds the docker containers using \"docker-compose up -d\""
|
|
echo " $0 setup hosts"
|
|
echo " Adds all sites to the hosts file, run with sudo"
|
|
echo " $0 -c frappe | root <command to run>"
|
|
echo " Runs a command in the container, as the selected user"
|
|
echo " $0 -h"
|
|
echo " Shows this help message"
|
|
echo " $0 <command to send to bench>"
|
|
echo " Runs a command in bench, i.e. $0 new-site site1.local = bench new-site site1.local"
|
|
else
|
|
IFS=" "
|
|
docker exec -it frappe bash -c "bench $*"
|
|
fi |