mirror of
https://github.com/discourse/discourse.git
synced 2024-12-13 21:04:38 +08:00
0e6d0b0f8e
Previously people could stay stuck on old dev images, this ensures they are always on latest when booting
81 lines
2.0 KiB
Bash
Executable File
81 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
SCRIPTPATH=$(cd "$(dirname "$0")" > /dev/null; pwd -P)
|
|
SOURCE_DIR=$(cd "$SCRIPTPATH" > /dev/null; cd ../.. > /dev/null; pwd -P)
|
|
DATA_DIR="$SOURCE_DIR/data/postgres"
|
|
|
|
show_help() {
|
|
cat <<EOF
|
|
Usage: ${0##*/} [-e VAR=VAL] [--env VAR=VAL] [--env-file filename] [-h] [--init]
|
|
|
|
-e, --env set environment variables
|
|
--env-file pass in a file containing a list of environment variable assignments
|
|
--init perform first-time initialization
|
|
EOF
|
|
}
|
|
|
|
initialize=""
|
|
ENV_ARGS=""
|
|
|
|
while [ "${#@}" -ne "0" ]; do
|
|
case "$1" in
|
|
-h | --help)
|
|
show_help
|
|
exit 0
|
|
;;
|
|
-i | --init)
|
|
initialize="initialize"
|
|
;;
|
|
-e | --env)
|
|
if [ -z "$2" ]; then
|
|
show_help
|
|
exit 0
|
|
else
|
|
ENV_ARGS+=" -e $2"
|
|
shift
|
|
fi
|
|
;;
|
|
--env-file)
|
|
if [ -z "$2" ]; then
|
|
show_help
|
|
exit 0
|
|
else
|
|
ENV_ARGS="--env-file=$2"
|
|
break
|
|
fi
|
|
;;
|
|
*)
|
|
echo "unexpected argument: $1" >& 2
|
|
show_help >& 2
|
|
exit 1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
echo "Using source in: ${SOURCE_DIR}"
|
|
echo "Using data in: ${DATA_DIR}"
|
|
|
|
mkdir -p "${DATA_DIR}"
|
|
|
|
# 1080 mailcatcher
|
|
# 3000 puma... if you must (but unicorn is preferred)
|
|
# 9292 unicorn
|
|
# 9405 prometheus exporter
|
|
|
|
docker pull discourse/discourse_dev:release
|
|
docker run -d -p 9405:9405 -p 1080:1080 -p 3000:3000 -p 9292:9292 -v "$DATA_DIR:/shared/postgres_data:delegated" -v "$SOURCE_DIR:/src:delegated" $ENV_ARGS --hostname=discourse --name=discourse_dev --restart=always discourse/discourse_dev:release /sbin/boot
|
|
|
|
if [ "${initialize}" = "initialize" ]; then
|
|
echo "Installing gems..."
|
|
"${SCRIPTPATH}/bundle" install
|
|
|
|
echo "Migrating database..."
|
|
"${SCRIPTPATH}/rake" db:migrate
|
|
RAILS_ENV=test "${SCRIPTPATH}/rake" db:migrate
|
|
|
|
echo "Creating admin user..."
|
|
"${SCRIPTPATH}/rake" admin:create
|
|
fi
|