druid/integration-tests-ex/image/docker/test-setup.sh

80 lines
2.5 KiB
Bash

#! /usr/bin/env 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 runs inside the container to prepare the Druid test image.
# Fail fast on any error
set -e
# Fail on unset environment variables
set -u
# Enable for tracing
#set -x
# For debugging: verify environment
#env
# Druid system user
adduser --system --group --no-create-home druid
# Adjust ownership of the Druid launch script.
cd /
chmod +x launch.sh
chown druid:druid launch.sh druid.sh
# Convenience script to run Druid for tools.
# Expands the env vars into the script for stability.
# Maybe not needed now?
cat > /run-druid.sh << EOF
#! /bin/bash
"${DRUID_HOME}/bin/run-java" -cp "${DRUID_HOME}/lib/*" \\
-Ddruid.extensions.directory=${DRUID_HOME}/extensions \\
-Ddruid.extensions.loadList='["mysql-metadata-storage"]' \\
-Ddruid.metadata.storage.type=mysql \\
-Ddruid.metadata.mysql.driver.driverClassName=$MYSQL_DRIVER_CLASSNAME \\
\$*
EOF
chmod a+x /run-druid.sh
# Install Druid, owned by user:group druid:druid
# The original Druid directory contains only
# libraries. No extensions should be present: those
# should be added in this step.
cd /usr/local/
tar -xzf apache-druid-${DRUID_VERSION}-bin.tar.gz
rm apache-druid-${DRUID_VERSION}-bin.tar.gz
ls -l /tmp/druid
# Add extra libraries and extensions.
mv /tmp/druid/lib/* apache-druid-${DRUID_VERSION}/lib
mv /tmp/druid/extensions/* apache-druid-${DRUID_VERSION}/extensions
# The whole shebang is owned by druid.
chown -R druid:druid apache-druid-${DRUID_VERSION}
# Leave the versioned directory, create a symlink to $DRUID_HOME.
ln -s apache-druid-${DRUID_VERSION} $DRUID_HOME
# Clean up time
# Should be nothing to clean...
rm -rf /tmp/*
rm -rf /var/tmp/*