blob: be0b933cc78bba0060d2220af72632b992438e51 [file]
#!/bin/sh
# 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 installs bash if the base Docker image does not have it.
# Bash is needed for the other helper shell scripts for Impala images,
# so the first step is to make it available.
set -eu
# Default level of extra debugging tools, controlled by the --install-debug-tools flag.
INSTALL_DEBUG_TOOLS=none
DRY_RUN=false
if command -v bash; then
echo "Bash found, skipping installation."
exit 0
fi
# This can get more detailed if there are specific steps
# for specific versions, but at the moment the distribution
# is all we need.
DISTRIBUTION=Unknown
if [ -f /etc/redhat-release ]; then
echo "Identified Redhat system."
DISTRIBUTION=Redhat
elif [ -f /etc/lsb-release ]; then
. /etc/lsb-release
if [ $DISTRIB_ID = Ubuntu ]; then
echo "Identified Ubuntu system."
DISTRIBUTION=Ubuntu
fi
# Check /etc/os-release last: it exists on Red Hat and Ubuntu systems as well
elif [ -f /etc/os-release ]; then
source /etc/os-release
if [ $ID = wolfi -o $ID = chainguard ]; then
echo "Identified Wolfi-based system."
DISTRIBUTION=Chainguard
fi
fi
if [ $DISTRIBUTION = Unknown ]; then
echo "ERROR: Did not detect supported distribution."
echo "Only Ubuntu, Red Hat (or related), or Wolfi base images are supported."
exit 1
fi
# Install minimal set of files.
# Optionally install extra debug tools.
if [ $DISTRIBUTION = Ubuntu ]; then
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y bash
elif [ $DISTRIBUTION = Redhat ]; then
yum install -y bash
elif [ $DISTRIBUTION = Chainguard ]; then
apk add --no-cache --no-interactive bash
fi