commit
This commit is contained in:
78
solr/docker/scripts/solr-create
Executable file
78
solr/docker/scripts/solr-create
Executable file
@@ -0,0 +1,78 @@
|
||||
#!/bin/bash
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# This script starts Solr on localhost, creates a core with "solr create",
|
||||
# stops Solr, and then starts Solr as normal.
|
||||
# Any arguments are passed to the "solr create".
|
||||
# To simply create a core:
|
||||
# docker run -P -d solr solr-create -c mycore
|
||||
# To create a core from mounted config:
|
||||
# docker run -P -d -v $PWD/myconfig:/myconfig solr solr-create -c mycore -d /myconfig
|
||||
|
||||
set -euo pipefail
|
||||
echo "Executing $0" "$@"
|
||||
|
||||
if [[ "${VERBOSE:-}" == "yes" ]]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
# Could set env-variables for solr-fg
|
||||
source run-initdb
|
||||
|
||||
# solr uses "-c corename". Parse the arguments to determine the core name.
|
||||
CORE_NAME="$(
|
||||
while (( $# > 0 )); do
|
||||
if [[ "$1" == '-c' ]]; then
|
||||
shift
|
||||
echo "$1"
|
||||
fi
|
||||
shift
|
||||
done
|
||||
)"
|
||||
if [[ -z "${CORE_NAME:-}" ]]; then
|
||||
echo "Could not determine core name"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
coresdir=/var/solr/data
|
||||
CORE_DIR="$coresdir/$CORE_NAME"
|
||||
|
||||
if [[ -d $CORE_DIR ]]; then
|
||||
echo "Directory $CORE_DIR exists; skipping core creation"
|
||||
else
|
||||
start-local-solr
|
||||
|
||||
echo "Creating core with:" "${@:1}"
|
||||
/opt/solr/bin/solr create "${@:1}"
|
||||
|
||||
# See https://github.com/docker-solr/docker-solr/issues/27
|
||||
echo "Checking core"
|
||||
if ! wget -O - "http://localhost:${SOLR_PORT:-8983}/solr/admin/cores?action=STATUS" | grep instanceDir >/dev/null; then
|
||||
echo "Could not find any cores"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Created core with:" "${@:1}"
|
||||
stop-local-solr
|
||||
|
||||
# check the core_dir exists; otherwise the detecting above will fail after stop/start
|
||||
if [ ! -d "$CORE_DIR" ]; then
|
||||
echo "Missing $CORE_DIR"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
exec solr-fg
|
||||
Reference in New Issue
Block a user