mirror of
https://github.com/sourcegraph/sourcegraph.git
synced 2026-02-06 18:51:59 +00:00
* Replacing TimescaleDB with CodeInsightsDB * Replacing timescaleDSN with insightsDSN * Remove or update TimescaleDB references in docs and comments
65 lines
2.0 KiB
Bash
Executable File
65 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Description: Code Insights Postgres DB.
|
|
|
|
set -euf -o pipefail
|
|
pushd "$(dirname "${BASH_SOURCE[0]}")/.." >/dev/null
|
|
|
|
if [ -n "${DISABLE_CODE_INSIGHTS:-}" ]; then
|
|
echo Not starting Code Insights DB since DISABLE_CODE_INSIGHTS is set.
|
|
exit 0
|
|
fi
|
|
|
|
DISK="${HOME}/.sourcegraph-dev/data/codeinsights-db"
|
|
if [ ! -e "${DISK}" ]; then
|
|
mkdir -p "${DISK}"
|
|
fi
|
|
|
|
IMAGE=sourcegraph/codeinsights-db:dev
|
|
CONTAINER=codeinsights-db
|
|
PORT=5435
|
|
|
|
docker inspect $CONTAINER >/dev/null 2>&1 && docker rm -f $CONTAINER
|
|
|
|
# Log file location: since we log outside of the Docker container, we should
|
|
# log somewhere that's _not_ ~/.sourcegraph-dev/data/codeinsights-db, since that gets
|
|
# volume mounted into the container and therefore has its own ownership
|
|
# semantics.
|
|
LOGS="${HOME}/.sourcegraph-dev/logs/codeinsights-db"
|
|
mkdir -p "${LOGS}"
|
|
|
|
LOG_FILE="${LOGS}/codeinsights-db.log"
|
|
|
|
# Quickly build image
|
|
echo "codeinsights-db: building ${IMAGE}..."
|
|
IMAGE=${IMAGE} CACHE=true ./docker-images/codeinsights-db/build.sh >"${LOG_FILE}" 2>&1 ||
|
|
(BUILD_EXIT_CODE=$? && echo "codeinsights-db build failed; dumping log:" && cat "${LOG_FILE}" && exit $BUILD_EXIT_CODE)
|
|
|
|
function finish() {
|
|
EXIT_CODE=$?
|
|
|
|
# Exit code 2 indicates a normal Ctrl-C termination via goreman, so we'll
|
|
# only dump the log if it's not 0 _or_ 2.
|
|
if [ $EXIT_CODE -ne 0 ] && [ $EXIT_CODE -ne 2 ]; then
|
|
echo "codeinsights-db exited with unexpected code ${EXIT_CODE}; dumping log:"
|
|
cat "${LOG_FILE}"
|
|
fi
|
|
|
|
# Ensure that we still return the same code so that goreman can do sensible
|
|
# things once this script exits.
|
|
return $EXIT_CODE
|
|
}
|
|
|
|
echo "codeinsights-db: serving on http://localhost:${PORT}"
|
|
echo "codeinsights-db: note that logs are piped to ${LOG_FILE}"
|
|
docker run --rm \
|
|
--name=${CONTAINER} \
|
|
--cpus=1 \
|
|
--memory=1g \
|
|
-e POSTGRES_DB=postgres \
|
|
-e POSTGRES_PASSWORD=password \
|
|
-e POSTGRES_USER=postgres \
|
|
-p 0.0.0.0:${PORT}:5432 \
|
|
-v "${DISK}":/var/lib/postgresql/data \
|
|
${IMAGE} >"${LOG_FILE}" 2>&1 || finish
|