#!/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