mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-18 22:25:09 +00:00
78 lines
2.7 KiB
Bash
Executable file
78 lines
2.7 KiB
Bash
Executable file
#!/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'
|
|
echo ' init -e initializes frappe-bench and installs erpnext'
|
|
echo ' init -d initializes frappe-bench and enables developer mode'
|
|
}
|
|
|
|
frappe_installer () {
|
|
echo "starting frappe_docker setup"
|
|
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"
|
|
echo "frappe-bench folder setup"
|
|
docker exec -it -u root frappe bash -c "apt-get install vim -y && apt-get install sudo -y && usermod -aG sudo frappe && printf '# User rules for frappe\nfrappe ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/frappe"
|
|
echo "adding site1.local"
|
|
docker exec -it frappe bash -c "bench new-site site1.local"
|
|
docker exec -i -u root frappe bash -c "echo 127.0.0.1 site1.local >> /etc/hosts"
|
|
sudo su -c 'echo 127.0.0.1 site1.local >> /etc/hosts'
|
|
echo "site1.local added"
|
|
}
|
|
|
|
if [[ $# -eq 0 ]]; then
|
|
docker exec -it frappe bash
|
|
|
|
elif [[ $1 == 'init' && $2 == 'e' ]]
|
|
then
|
|
frappe_installer
|
|
echo "installing erpnext"
|
|
docker exec -it frappe bash -c "bench get-app erpnext"
|
|
docker exec -it frappe bash -c "bench --site site1.local install-app erpnext"
|
|
echo "finished"
|
|
|
|
elif [[ $1 == 'init' && $2 == 'd' ]]
|
|
then
|
|
frappe_installer
|
|
docker exec -it frappe bash -c "cat frappe-bench/sites/site1/site_config.json"
|
|
|
|
elif [ $1 == 'init' ]
|
|
then
|
|
frappe_installer
|
|
|
|
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
|