zammad-docker-compose/docker-entrypoint.sh
2016-12-19 21:26:53 +01:00

72 lines
1.8 KiB
Bash

#!/bin/bash
ZAMMAD_DIR="/home/zammad"
GIT_URL="https://github.com/zammad/zammad.git"
GIT_BRANCH="develop"
#GIT_URL="https://github.com/monotek/zammad.git"
#GIT_BRANCH="unicorn"
FRESH_INSTALL="yes"
RAILS_SERVER="unicorn"
DEBUG="yes"
export RAILS_ENV="production"
shopt -s dotglob
if [ "${FRESH_INSTALL}" == "yes" ]; then
echo "fresh install requested. delting everything in ${ZAMMAD_DIR}"
rm -rf ${ZAMMAD_DIR}/*
fi
if [ "$1" = 'zammad' ]; then
# get zammad
if [ -f ${ZAMMAD_DIR}/config/database.yml ]; then
echo "updating zammad..."
cd ${ZAMMAD_DIR}
git pull
bundle update
rake db:migrate
else
echo "installing zammad..."
cd /tmp
git clone ${GIT_URL}
mv -f /tmp/zammad/* ${ZAMMAD_DIR}/
cd ${ZAMMAD_DIR}
git checkout ${GIT_BRANCH}
bundle install --without test development
sed -e 's#.*username:.*# username: postgres#g' -e 's#.*password:.*# password: \n host: postgresql\n#g' < config/database.yml.pkgr > config/database.yml
rake db:drop
rake db:create
rake db:migrate
rake db:seed
rake assets:precompile
rails r "Setting.set('es_url', 'http://elasticsearch:9200')"
fi
# delte logs & pids
rm ${ZAMMAD_DIR}/log/*
rm ${ZAMMAD_DIR}/tmp/pids/*
# run zammad
echo "starting zammad..."
echo "zammad will be accessable on http://localhost in some seconds"
bundle exec script/websocket-server.rb -b 0.0.0.0 start &
bundle exec script/scheduler.rb start &
if [ "${RAILS_SERVER}" == "puma" ]; then
#rails s -p 3000 -b 0.0.0.0
bundle exec puma -p 3000 -b 0.0.0.0
elif [ "${RAILS_SERVER}" == "unicorn" ]; then
bundle exec unicorn -p 3000 -c config/unicorn.rb
fi
if [ "${DEBUG}" == "yes" ]; then
# keepalive if error
while true; do
echo "debugging..."
sleep 600
done
fi
fi