diff --git a/bitnami/redis/4.0/ol-7/Dockerfile b/bitnami/redis/4.0/ol-7/Dockerfile deleted file mode 100644 index 44af7b506bba..000000000000 --- a/bitnami/redis/4.0/ol-7/Dockerfile +++ /dev/null @@ -1,34 +0,0 @@ -FROM oraclelinux:7-slim -LABEL maintainer "Bitnami " - -ENV BITNAMI_PKG_CHMOD="-R g+rwX" \ - HOME="/" \ - OS_ARCH="x86_64" \ - OS_FLAVOUR="ol-7" \ - OS_NAME="linux" - -COPY prebuildfs / -# Install required system packages and dependencies -RUN install_packages ca-certificates curl glibc gzip hostname libaio-devel procps-ng sudo tar unzip which -RUN . ./libcomponent.sh && component_unpack "redis" "4.0.14-3" --checksum c894cff0e8e14d13086aee2ef4e1c315d19385ab95d15ba54dda7f8df49d0730 -RUN yum upgrade -y && \ - rm -r /var/cache/yum -RUN /build/install-gosu.sh -RUN curl --silent -L https://github.com/bitnami/wait-for-port/releases/download/v1.0/wait-for-port.zip > /tmp/wait-for-port.zip && \ - echo "8d26181f4629211b70db4f96236616056b1ed8e5920d8023f7c883071e76c1ed /tmp/wait-for-port.zip" | sha256sum --check && \ - unzip -q -d /usr/local/bin -o /tmp/wait-for-port.zip wait-for-port && \ - mkdir -p /opt/bitnami/licenses && \ - curl --silent -L https://raw.githubusercontent.com/bitnami/wait-for-port/master/COPYING > /opt/bitnami/licenses/wait-for-port-1.0.txt - -COPY rootfs / -RUN /postunpack.sh -ENV BITNAMI_APP_NAME="redis" \ - BITNAMI_IMAGE_VERSION="4.0.14-ol-7-r343" \ - NAMI_PREFIX="/.nami" \ - PATH="/opt/bitnami/redis/bin:$PATH" - -EXPOSE 6379 - -USER 1001 -ENTRYPOINT [ "/entrypoint.sh" ] -CMD [ "/run.sh" ] diff --git a/bitnami/redis/4.0/ol-7/docker-compose.yml b/bitnami/redis/4.0/ol-7/docker-compose.yml deleted file mode 100644 index 9000007a1c79..000000000000 --- a/bitnami/redis/4.0/ol-7/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '2' - -services: - redis: - image: 'bitnami/redis:4.0-ol-7' - environment: - # ALLOW_EMPTY_PASSWORD is recommended only for development. - - ALLOW_EMPTY_PASSWORD=yes - - REDIS_DISABLE_COMMANDS=FLUSHDB,FLUSHALL - ports: - - '6379:6379' - volumes: - - 'redis_data:/bitnami/redis/data' - -volumes: - redis_data: - driver: local diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/build/install-gosu.sh b/bitnami/redis/4.0/ol-7/prebuildfs/build/install-gosu.sh deleted file mode 100755 index 1756700daa89..000000000000 --- a/bitnami/redis/4.0/ol-7/prebuildfs/build/install-gosu.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -VERSION="1.11" -SHA256="0b843df6d86e270c5b0f5cbd3c326a04e18f4b7f9b8457fa497b0454c4b138d7" - -curl --silent -L "https://github.com/tianon/gosu/releases/download/${VERSION}/gosu-amd64" > "/usr/local/bin/gosu" -echo "$SHA256" "/usr/local/bin/gosu" | sha256sum --check -chmod u+x "/usr/local/bin/gosu" -mkdir -p "/opt/bitnami/licenses" -curl --silent -L "https://raw.githubusercontent.com/tianon/gosu/master/LICENSE" > "/opt/bitnami/licenses/gosu-${VERSION}.txt" diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/libbitnami.sh b/bitnami/redis/4.0/ol-7/prebuildfs/libbitnami.sh deleted file mode 100644 index 529c3fd4a3e2..000000000000 --- a/bitnami/redis/4.0/ol-7/prebuildfs/libbitnami.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# -# Bitnami custom library - -# Load Generic Libraries -. /liblog.sh - -# Constants -BOLD='\033[1m' - -# Functions - -######################## -# Print the welcome page -# Globals: -# DISABLE_WELCOME_MESSAGE -# BITNAMI_APP_NAME -# Arguments: -# None -# Returns: -# None -######################### -print_welcome_page() { - if [[ -z "${DISABLE_WELCOME_MESSAGE:-}" ]]; then - if [[ -n "$BITNAMI_APP_NAME" ]]; then - print_image_welcome_page - fi - fi -} - -######################## -# Print the welcome page for a Bitnami Docker image -# Globals: -# BITNAMI_APP_NAME -# Arguments: -# None -# Returns: -# None -######################### -print_image_welcome_page() { - local github_url="https://github.com/bitnami/bitnami-docker-${BITNAMI_APP_NAME}" - - log "" - log "${BOLD}Welcome to the Bitnami ${BITNAMI_APP_NAME} container${RESET}" - log "Subscribe to project updates by watching ${BOLD}${github_url}${RESET}" - log "Submit issues and feature requests at ${BOLD}${github_url}/issues${RESET}" - log "Send us your feedback at ${BOLD}containers@bitnami.com${RESET}" - log "" -} - diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/libcomponent.sh b/bitnami/redis/4.0/ol-7/prebuildfs/libcomponent.sh deleted file mode 100644 index 025288664f69..000000000000 --- a/bitnami/redis/4.0/ol-7/prebuildfs/libcomponent.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -# -# Library for managing Bitnami components - -# Constants -CACHE_ROOT="/tmp/bitnami/pkg/cache" -DOWNLOAD_URL="https://downloads.bitnami.com/files/stacksmith" - -# Functions - -######################## -# Download and unpack a Bitnami package -# Globals: -# OS_NAME -# OS_ARCH -# OS_FLAVOUR -# Arguments: -# $1 - component's name -# $2 - component's version -# Returns: -# None -######################### -component_unpack() { - local name="${1:?name is required}" - local version="${2:?version is required}" - local base_name="${name}-${version}-${OS_NAME}-${OS_ARCH}-${OS_FLAVOUR}" - local package_sha256="" - - # Validate arguments - shift 2 - while [ "$#" -gt 0 ]; do - case "$1" in - -c|--checksum) - shift - package_sha256="${1:?missing package checksum}" - ;; - *) - echo "Invalid command line flag $1" >&2 - return 1 - ;; - esac - shift - done - - echo "Downloading $base_name package" - if [ -f "${CACHE_ROOT}/${base_name}.tar.gz" ]; then - echo "${CACHE_ROOT}/${base_name}.tar.gz already exists, skipping download." - cp "${CACHE_ROOT}/${base_name}.tar.gz" . - rm "${CACHE_ROOT}/${base_name}.tar.gz" - if [ -f "${CACHE_ROOT}/${base_name}.tar.gz.sha256" ]; then - echo "Using the local sha256 from ${CACHE_ROOT}/${base_name}.tar.gz.sha256" - package_sha256="$(< "${CACHE_ROOT}/${base_name}.tar.gz.sha256")" - rm "${CACHE_ROOT}/${base_name}.tar.gz.sha256" - fi - else - curl --remote-name --silent "${DOWNLOAD_URL}/${base_name}.tar.gz" - fi - if [ -n "$package_sha256" ]; then - echo "Verifying package integrity" - echo "$package_sha256 ${base_name}.tar.gz" | sha256sum --check - - fi - tar --directory /opt/bitnami --extract --gunzip --file "${base_name}.tar.gz" --no-same-owner --strip-components=2 "${base_name}/files/" - rm "${base_name}.tar.gz" -} diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/libfile.sh b/bitnami/redis/4.0/ol-7/prebuildfs/libfile.sh deleted file mode 100644 index 337e2e779701..000000000000 --- a/bitnami/redis/4.0/ol-7/prebuildfs/libfile.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -# -# Library for managing files - -# Functions - -######################## -# Replace a regex in a file -# Arguments: -# $1 - filename -# $2 - match regex -# $3 - substitute regex -# $4 - use POSIX regex. Default: true -# Returns: -# None -######################### -replace_in_file() { - local filename="${1:?filename is required}" - local match_regex="${2:?match regex is required}" - local substitute_regex="${3:?substitute regex is required}" - local posix_regex=${4:-true} - - local result - - # We should avoid using 'sed in-place' substitutions - # 1) They are not compatible with files mounted from ConfigMap(s) - # 2) We found incompatibility issues with Debian10 and "in-place" substitutions - if [[ $posix_regex = true ]]; then - result="$(sed -E "s@$match_regex@$substitute_regex@g" "$filename")" - else - result="$(sed "s@$match_regex@$substitute_regex@g" "$filename")" - fi - echo "$result" > "$filename" -} - -######################## -# Remove a line in a file based on a regex -# Arguments: -# $1 - filename -# $2 - match regex -# $3 - use POSIX regex. Default: true -# Returns: -# None -######################### -remove_in_file() { - local filename="${1:?filename is required}" - local match_regex="${2:?match regex is required}" - local posix_regex=${3:-true} - local result - - # We should avoid using 'sed in-place' substitutions - # 1) They are not compatible with files mounted from ConfigMap(s) - # 2) We found incompatibility issues with Debian10 and "in-place" substitutions - if [[ $posix_regex = true ]]; then - result="$(sed -E "/$match_regex/d" "$filename")" - else - result="$(sed "/$match_regex/d" "$filename")" - fi - echo "$result" > "$filename" -} diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/libfs.sh b/bitnami/redis/4.0/ol-7/prebuildfs/libfs.sh deleted file mode 100644 index 10a24735c096..000000000000 --- a/bitnami/redis/4.0/ol-7/prebuildfs/libfs.sh +++ /dev/null @@ -1,129 +0,0 @@ -#!/bin/bash -# -# Library for file system actions - -# Load Generic Libraries -. /liblog.sh - -# Functions - -######################## -# Ensure a file/directory is owned (user and group) but the given user -# Arguments: -# $1 - filepath -# $2 - owner -# Returns: -# None -######################### -owned_by() { - local path="${1:?path is missing}" - local owner="${2:?owner is missing}" - - chown "$owner":"$owner" "$path" -} - -######################## -# Ensure a directory exists and, optionally, is owned by the given user -# Arguments: -# $1 - directory -# $2 - owner -# Returns: -# None -######################### -ensure_dir_exists() { - local dir="${1:?directory is missing}" - local owner="${2:-}" - - mkdir -p "${dir}" - if [[ -n $owner ]]; then - owned_by "$dir" "$owner" - fi -} - -######################## -# Checks whether a directory is empty or not -# Arguments: -# $1 - directory -# Returns: -# Boolean -######################### -is_dir_empty() { - local dir="${1:?missing directory}" - - if [[ ! -e "$dir" ]] || [[ -z "$(ls -A "$dir")" ]]; then - true - else - false - fi -} - -######################## -# Configure permisions and ownership recursively -# Globals: -# None -# Arguments: -# $1 - paths (as a string). -# Flags: -# -f|--file-mode - mode for directories. -# -d|--dir-mode - mode for files. -# -u|--user - user -# -g|--group - group -# Returns: -# None -######################### -configure_permissions_ownership() { - local -r paths="${1:?paths is missing}" - local dir_mode="" - local file_mode="" - local user="" - local group="" - - # Validate arguments - shift 1 - while [ "$#" -gt 0 ]; do - case "$1" in - -f|--file-mode) - shift - file_mode="${1:?missing mode for files}" - ;; - -d|--dir-mode) - shift - dir_mode="${1:?missing mode for directories}" - ;; - -u|--user) - shift - user="${1:?missing user}" - ;; - -g|--group) - shift - group="${1:?missing group}" - ;; - *) - echo "Invalid command line flag $1" >&2 - return 1 - ;; - esac - shift - done - - read -r -a filepaths <<< "$paths" - for p in "${filepaths[@]}"; do - if [[ -e "$p" ]]; then - if [[ -n $dir_mode ]]; then - find -L "$p" -type d -exec chmod "$dir_mode" {} \; - fi - if [[ -n $file_mode ]]; then - find -L "$p" -type f -exec chmod "$file_mode" {} \; - fi - if [[ -n $user ]] && [[ -n $group ]]; then - chown -LR "$user":"$group" "$p" - elif [[ -n $user ]] && [[ -z $group ]]; then - chown -LR "$user" "$p" - elif [[ -z $user ]] && [[ -n $group ]]; then - chgrp -LR "$group" "$p" - fi - else - stderr_print "$p does not exist" - fi - done -} diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/liblog.sh b/bitnami/redis/4.0/ol-7/prebuildfs/liblog.sh deleted file mode 100644 index 04118273394a..000000000000 --- a/bitnami/redis/4.0/ol-7/prebuildfs/liblog.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/bash -# -# Library for logging functions - -# Constants -RESET='\033[0m' -RED='\033[38;5;1m' -GREEN='\033[38;5;2m' -YELLOW='\033[38;5;3m' -MAGENTA='\033[38;5;5m' -CYAN='\033[38;5;6m' - -# Functions - -######################## -# Print to STDERR -# Arguments: -# Message to print -# Returns: -# None -######################### -stderr_print() { - printf "%b\\n" "${*}" >&2 -} - -######################## -# Log message -# Arguments: -# Message to log -# Returns: -# None -######################### -log() { - stderr_print "${CYAN}${MODULE:-} ${MAGENTA}$(date "+%T.%2N ")${RESET}${*}" -} -######################## -# Log an 'info' message -# Arguments: -# Message to log -# Returns: -# None -######################### -info() { - log "${GREEN}INFO ${RESET} ==> ${*}" -} -######################## -# Log message -# Arguments: -# Message to log -# Returns: -# None -######################### -warn() { - log "${YELLOW}WARN ${RESET} ==> ${*}" -} -######################## -# Log an 'error' message -# Arguments: -# Message to log -# Returns: -# None -######################### -error() { - log "${RED}ERROR${RESET} ==> ${*}" -} -######################## -# Log a 'debug' message -# Globals: -# BITNAMI_DEBUG -# Arguments: -# None -# Returns: -# None -######################### -debug() { - # 'is_boolean_yes' is defined in libvalidations.sh, but depends on this file so we cannot source it - local -r bool="${BITNAMI_DEBUG:-false}" - # comparison is performed without regard to the case of alphabetic characters - shopt -s nocasematch - if [[ "$bool" = 1 || "$bool" =~ ^(yes|true)$ ]]; then - log "${MAGENTA}DEBUG${RESET} ==> ${*}" - fi -} diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/libnet.sh b/bitnami/redis/4.0/ol-7/prebuildfs/libnet.sh deleted file mode 100644 index f884b7661fd7..000000000000 --- a/bitnami/redis/4.0/ol-7/prebuildfs/libnet.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# -# Library for network functions - -# Functions - -######################## -# Resolve dns -# Arguments: -# $1 - Hostname to resolve -# Returns: -# IP -######################### -dns_lookup() { - local host="${1:?host is missing}" - getent ahosts "$host" | awk '/STREAM/ {print $1 }' -} - -######################## -# Get machine's IP -# Arguments: -# None -# Returns: -# Machine IP -######################### -get_machine_ip() { - dns_lookup "$(hostname)" -} - -######################## -# Check if the provided argument is a resolved hostname -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_hostname_resolved() { - local -r host="${1:?missing value}" - if [[ -n "$(dns_lookup "$host")" ]]; then - true - else - false - fi -} diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/libos.sh b/bitnami/redis/4.0/ol-7/prebuildfs/libos.sh deleted file mode 100644 index 1a5ba3bb2a64..000000000000 --- a/bitnami/redis/4.0/ol-7/prebuildfs/libos.sh +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/bash -# -# Library for operating system actions - -# Functions - -######################## -# Check if an user exists in the system -# Arguments: -# $1 - user -# Returns: -# Boolean -######################### -user_exists() { - local user="${1:?user is missing}" - id "$user" >/dev/null 2>&1 -} - -######################## -# Check if a group exists in the system -# Arguments: -# $1 - group -# Returns: -# Boolean -######################### -group_exists() { - local group="${1:?group is missing}" - getent group "$group" >/dev/null 2>&1 -} - -######################## -# Create a group in the system if it does not exist already -# Arguments: -# $1 - group -# Returns: -# None -######################### -ensure_group_exists() { - local group="${1:?group is missing}" - - if ! group_exists "$group"; then - groupadd "$group" >/dev/null 2>&1 - fi -} - -######################## -# Create an user in the system if it does not exist already -# Arguments: -# $1 - user -# $2 - group -# Returns: -# None -######################### -ensure_user_exists() { - local user="${1:?user is missing}" - local group="${2:-}" - - if ! user_exists "$user"; then - useradd "$user" >/dev/null 2>&1 - if [[ -n "$group" ]]; then - ensure_group_exists "$group" - usermod -a -G "$group" "$user" >/dev/null 2>&1 - fi - fi -} - -######################## -# Check if the script is currently running as root -# Arguments: -# $1 - user -# $2 - group -# Returns: -# Boolean -######################### -am_i_root() { - if [[ "$(id -u)" = "0" ]]; then - true - else - false - fi -} - -######################## -# Get total memory available -# Arguments: -# None -# Returns: -# Memory in bytes -######################### -get_total_memory() { - echo $(($(grep MemTotal /proc/meminfo | awk '{print $2}') / 1024)) -} - -######################### -# Redirects output to /dev/null if debug mode is disabled -# Globals: -# BITNAMI_DEBUG -# Arguments: -# $@ - Command to execute -# Returns: -# None -######################### -debug_execute() { - if ${BITNAMI_DEBUG:-false}; then - "$@" - else - "$@" >/dev/null 2>&1 - fi -} - -######################## -# Retries a command a given number of times -# Arguments: -# $1 - cmd (as a string) -# $2 - max retries. Default: 12 -# $3 - sleep between retries (in seconds). Default: 5 -# Returns: -# Boolean -######################### -retry_while() { - local -r cmd="${1:?cmd is missing}" - local -r retries="${2:-12}" - local -r sleep_time="${3:-5}" - local return_value=1 - - read -r -a command <<< "$cmd" - for ((i = 1 ; i <= retries ; i+=1 )); do - "${command[@]}" && return_value=0 && break - sleep "$sleep_time" - done - return $return_value -} diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/libservice.sh b/bitnami/redis/4.0/ol-7/prebuildfs/libservice.sh deleted file mode 100644 index 0a83cd3d927f..000000000000 --- a/bitnami/redis/4.0/ol-7/prebuildfs/libservice.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash -# -# Library for managing services - -# Functions - -######################## -# Read the provided pid file and returns a PID -# Arguments: -# $1 - Pid file -# Returns: -# PID -######################### -get_pid_from_file() { - local pid_file="${1:?pid file is missing}" - - if [[ -f "$pid_file" ]]; then - if [[ -n "$(< "$pid_file")" ]] && [[ "$(< "$pid_file")" -gt 0 ]]; then - echo "$(< "$pid_file")" - fi - fi -} - -######################## -# Check if a provided PID corresponds to a running service -# Arguments: -# $1 - PID -# Returns: -# Boolean -######################### -is_service_running() { - local pid="${1:?pid is missing}" - - kill -0 "$pid" 2>/dev/null -} - -######################## -# Stop a service by sending a termination signal to its pid -# Arguments: -# $1 - Pid file -# Returns: -# None -######################### -stop_service_using_pid() { - local pid_file="${1:?pid file is missing}" - local pid - - pid="$(get_pid_from_file "$pid_file")" - [[ -z "$pid" ]] || ! is_service_running "$pid" && return - - kill "$pid" - local counter=10 - while [[ "$counter" -ne 0 ]] && is_service_running "$pid"; do - sleep 1 - counter=$((counter - 1)) - done -} diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/libvalidations.sh b/bitnami/redis/4.0/ol-7/prebuildfs/libvalidations.sh deleted file mode 100644 index ef9aaf0cf31f..000000000000 --- a/bitnami/redis/4.0/ol-7/prebuildfs/libvalidations.sh +++ /dev/null @@ -1,246 +0,0 @@ -#!/bin/bash -# -# Validation functions library - -# Load Generic Libraries -. /liblog.sh - -# Functions - -######################## -# Check if the provided argument is an integer -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_int() { - local -r int="${1:?missing value}" - if [[ "$int" =~ ^-?[0-9]+ ]]; then - true - else - false - fi -} - -######################## -# Check if the provided argument is a positive integer -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_positive_int() { - local -r int="${1:?missing value}" - if is_int "$int" && (( "${int}" >= 0 )); then - true - else - false - fi -} - -######################## -# Check if the provided argument is a boolean or is the string 'yes/true' -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_boolean_yes() { - local -r bool="${1:-}" - # comparison is performed without regard to the case of alphabetic characters - shopt -s nocasematch - if [[ "$bool" = 1 || "$bool" =~ ^(yes|true)$ ]]; then - true - else - false - fi -} - -######################## -# Check if the provided argument is a boolean yes/no value -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_yes_no_value() { - local -r bool="${1:-}" - if [[ "$bool" =~ ^(yes|no)$ ]]; then - true - else - false - fi -} - -######################## -# Check if the provided argument is a boolean true/false value -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_true_false_value() { - local -r bool="${1:-}" - if [[ "$bool" =~ ^(true|false)$ ]]; then - true - else - false - fi -} - -######################## -# Check if the provided argument is an empty string or not defined -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_empty_value() { - local -r val="${1:-}" - if [[ -z "$val" ]]; then - true - else - false - fi -} - -######################## -# Validate if the provided argument is a valid port -# Arguments: -# $1 - Port to validate -# Returns: -# Boolean and error message -######################### -validate_port() { - local value - local unprivileged=0 - - # Parse flags - while [[ "$#" -gt 0 ]]; do - case "$1" in - -unprivileged) - unprivileged=1 - ;; - --) - shift - break - ;; - -*) - stderr_print "unrecognized flag $1" - return 1 - ;; - *) - break - ;; - esac - shift - done - - if [[ "$#" -gt 1 ]]; then - echo "too many arguments provided" - return 2 - elif [[ "$#" -eq 0 ]]; then - stderr_print "missing port argument" - return 1 - else - value=$1 - fi - - if [[ -z "$value" ]]; then - echo "the value is empty" - return 1 - else - if ! is_int "$value"; then - echo "value is not an integer" - return 2 - elif [[ "$value" -lt 0 ]]; then - echo "negative value provided" - return 2 - elif [[ "$value" -gt 65535 ]]; then - echo "requested port is greater than 65535" - return 2 - elif [[ "$unprivileged" = 1 && "$value" -lt 1024 ]]; then - echo "privileged port requested" - return 3 - fi - fi -} - -######################## -# Validate if the provided argument is a valid IPv4 address -# Arguments: -# $1 - IP to validate -# Returns: -# Boolean -######################### -validate_ipv4() { - local ip="${1:?ip is missing}" - local stat=1 - - if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then - read -r -a ip_array <<< "$(tr '.' ' ' <<< "$ip")" - [[ ${ip_array[0]} -le 255 && ${ip_array[1]} -le 255 \ - && ${ip_array[2]} -le 255 && ${ip_array[3]} -le 255 ]] - stat=$? - fi - return $stat -} - -######################## -# Validate a string format -# Arguments: -# $1 - String to validate -# Returns: -# Boolean -######################### -validate_string() { - local string - local min_length=-1 - local max_length=-1 - - # Parse flags - while [ "$#" -gt 0 ]; do - case "$1" in - -min-length) - shift - min_length=${1:-} - ;; - -max-length) - shift - max_length=${1:-} - ;; - --) - shift - break - ;; - -*) - stderr_print "unrecognized flag $1" - return 1 - ;; - *) - break - ;; - esac - shift - done - - if [ "$#" -gt 1 ]; then - stderr_print "too many arguments provided" - return 2 - elif [ "$#" -eq 0 ]; then - stderr_print "missing string" - return 1 - else - string=$1 - fi - - if [[ "$min_length" -ge 0 ]] && [[ "${#string}" -lt "$min_length" ]]; then - echo "string length is less than $min_length" - return 1 - fi - if [[ "$max_length" -ge 0 ]] && [[ "${#string}" -gt "$max_length" ]]; then - echo "string length is great than $max_length" - return 1 - fi -} diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/libversion.sh b/bitnami/redis/4.0/ol-7/prebuildfs/libversion.sh deleted file mode 100644 index b16090cfe1f4..000000000000 --- a/bitnami/redis/4.0/ol-7/prebuildfs/libversion.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# -# Library for managing versions strings - -# Load Generic Libraries -. ./liblog.sh - -# Functions -######################## -# Gets semantic version -# Arguments: -# $1 - version: string to extract major.minor.patch -# $2 - section: 1 to extract major, 2 to extract minor, 3 to extract patch -# Returns: -# array with the major, minor and release -######################### -get_sematic_version () { - local version="${1:?version is required}" - local section="${2:?section is required}" - local -a version_sections - - #Regex to parse versions: x.y.z - local -r regex='([0-9]+)(\.([0-9]+)(\.([0-9]+))?)?' - - if [[ "$version" =~ $regex ]]; then - local i=1 - local j=1 - local n=${#BASH_REMATCH[*]} - - while [[ $i -lt $n ]]; do - if [[ -n "${BASH_REMATCH[$i]}" ]] && [[ "${BASH_REMATCH[$i]:0:1}" != '.' ]]; then - version_sections[$j]=${BASH_REMATCH[$i]} - ((j++)) - fi - ((i++)) - done - - local number_regex='^[0-9]+$' - if [[ "$section" =~ $number_regex ]] && (( $section > 0 )) && (( $section <= 3 )); then - echo "${version_sections[$section]}" - return - else - stderr_print "Section allowed values are: 1, 2, and 3" - return 1 - fi - fi -} diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/opt/bitnami/.exists b/bitnami/redis/4.0/ol-7/prebuildfs/opt/bitnami/.exists deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/bitnami/redis/4.0/ol-7/prebuildfs/usr/local/bin/install_packages b/bitnami/redis/4.0/ol-7/prebuildfs/usr/local/bin/install_packages deleted file mode 100755 index 370f3516f403..000000000000 --- a/bitnami/redis/4.0/ol-7/prebuildfs/usr/local/bin/install_packages +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -set -eu - -if [[ -n "oracle-epel-release-el7" ]]; then - if ! yum list installed oracle-epel-release-el7 >/dev/null 2>&1; then - yum -y install oracle-epel-release-el7 >/dev/null 2>&1 - CODE=$? - if (( $CODE != 0 )); then - echo "EPEL repository installation failed" - exit $CODE - fi - fi -fi - -max=2 -for ((n = 1 ; n <= max ; n+=1 )); do - set +e - yum --enablerepo base,updates,ol7_developer_EPEL,ol7_optional_latest install -y "$@" - CODE=$? - set -e - if (( $CODE == 0 )); then - break - fi - if (( $n == $max )); then - exit $CODE - fi - echo "yum failed, retrying" -done -rm -r /var/cache/yum diff --git a/bitnami/redis/4.0/ol-7/rootfs/entrypoint.sh b/bitnami/redis/4.0/ol-7/rootfs/entrypoint.sh deleted file mode 100755 index 52465291e590..000000000000 --- a/bitnami/redis/4.0/ol-7/rootfs/entrypoint.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -set -o errexit -set -o nounset -set -o pipefail -#set -o xtrace -# shellcheck disable=SC1091 - -# Load libraries -. /libbitnami.sh -. /libredis.sh - -# Load Redis environment variables -eval "$(redis_env)" - -print_welcome_page - -if [[ "$*" = *"/run.sh"* ]]; then - info "** Starting Redis setup **" - /setup.sh - info "** Redis setup finished! **" -fi - -echo "" -exec "$@" diff --git a/bitnami/redis/4.0/ol-7/rootfs/libredis.sh b/bitnami/redis/4.0/ol-7/rootfs/libredis.sh deleted file mode 100644 index b2c69cb5615b..000000000000 --- a/bitnami/redis/4.0/ol-7/rootfs/libredis.sh +++ /dev/null @@ -1,388 +0,0 @@ -#!/bin/bash -# -# Bitnami Redis library - -# shellcheck disable=SC1091 - -# Load Generic Libraries -. /libfile.sh -. /liblog.sh -. /libnet.sh -. /libos.sh -. /libservice.sh -. /libvalidations.sh - -# Functions - -######################## -# Retrieve a configuration setting value -# Globals: -# REDIS_BASEDIR -# Arguments: -# $1 - key -# Returns: -# None -######################### -redis_conf_get() { - local key="${1:?missing key}" - - grep -E "^\s*$key " "${REDIS_BASEDIR}/etc/redis.conf" | awk '{print $2}' -} - -######################## -# Set a configuration setting value -# Globals: -# REDIS_BASEDIR -# Arguments: -# $1 - key -# $2 - value -# Returns: -# None -######################### -redis_conf_set() { - # TODO: improve this. Substitute action? - local key="${1:?missing key}" - local value="${2:-}" - - # Sanitize inputs - value="${value//\\/\\\\}" - value="${value//&/\\&}" - value="${value//\?/\\?}" - [[ "$value" = "" ]] && value="\"$value\"" - - replace_in_file "${REDIS_BASEDIR}/etc/redis.conf" "^#*\s*${key} .*" "${key} ${value}" false -} - -######################## -# Unset a configuration setting value -# Globals: -# REDIS_BASEDIR -# Arguments: -# $1 - key -# Returns: -# None -######################### -redis_conf_unset() { - # TODO: improve this. Substitute action? - local key="${1:?missing key}" - remove_in_file "${REDIS_BASEDIR}/etc/redis.conf" "^\s*$key .*" false -} - -######################## -# Get Redis version -# Globals: -# REDIS_BASEDIR -# Arguments: -# None -# Returns: -# Redis versoon -######################### -redis_version() { - "${REDIS_BASEDIR}/bin/redis-cli" --version | grep -E -o "[0-9]+.[0-9]+.[0-9]+" -} - -######################## -# Get Redis major version -# Globals: -# REDIS_BASEDIR -# Arguments: -# None -# Returns: -# Redis major version -######################### -redis_major_version() { - redis_version | grep -E -o "^[0-9]+" -} - -######################## -# Check if redis is running -# Globals: -# REDIS_BASEDIR -# Arguments: -# None -# Returns: -# Boolean -######################### -is_redis_running() { - local pid - pid="$(get_pid_from_file "$REDIS_BASEDIR/tmp/redis.pid")" - - if [[ -z "$pid" ]]; then - false - else - is_service_running "$pid" - fi -} - -######################## -# Stop Redis -# Globals: -# REDIS_* -# Arguments: -# None -# Returns: -# None -######################### -redis_stop() { - local pass - local port - local args - - ! is_redis_running && return - pass="$(redis_conf_get "requirepass")" - port="$(redis_conf_get "port")" - - [[ -n "$pass" ]] && args+=("-a" "\"$pass\"") - [[ "$port" != "0" ]] && args+=("-p" "$port") - - debug "Stopping Redis..." - if am_i_root; then - gosu "$REDIS_DAEMON_USER" "${REDIS_BASEDIR}/bin/redis-cli" "${args[@]}" shutdown - else - "${REDIS_BASEDIR}/bin/redis-cli" "${args[@]}" shutdown - fi - local counter=5 - while is_redis_running ; do - if [[ "$counter" -ne 0 ]]; then - break - fi - sleep 1; - counter=$((counter - 1)) - done -} - -######################## -# Start redis and wait until it's ready -# Globals: -# REDIS_* -# Arguments: -# None -# Returns: -# None -######################### -redis_start() { - is_redis_running && return - debug "Starting Redis..." - if am_i_root; then - gosu "$REDIS_DAEMON_USER" "${REDIS_BASEDIR}/bin/redis-server" "${REDIS_BASEDIR}/etc/redis.conf" - else - "${REDIS_BASEDIR}/bin/redis-server" "${REDIS_BASEDIR}/etc/redis.conf" - fi - local counter=3 - while ! is_redis_running ; do - if [[ "$counter" -ne 0 ]]; then - break - fi - sleep 1; - counter=$((counter - 1)) - done -} - -######################## -# Load global variables used on Redis configuration. -# Globals: -# REDIS_* -# Arguments: -# None -# Returns: -# Series of exports to be used as 'eval' arguments -######################### -redis_env() { - cat <<"EOF" -export REDIS_BASEDIR="/opt/bitnami/redis" -export REDIS_EXTRAS_DIR="/opt/bitnami/extra/redis" -export REDIS_VOLUME="/bitnami/redis" -export REDIS_TEMPLATES_DIR="${REDIS_EXTRAS_DIR}/templates" -export REDIS_TMPDIR="${REDIS_BASEDIR}/tmp" -export REDIS_LOGDIR="${REDIS_BASEDIR}/logs" -export PATH="${REDIS_BASEDIR}/bin:$PATH" -export REDIS_DAEMON_USER="redis" -export REDIS_DAEMON_GROUP="redis" -export REDIS_SENTINEL_HOST="${REDIS_SENTINEL_HOST:-}" -export REDIS_SENTINEL_MASTER_NAME="${REDIS_SENTINEL_MASTER_NAME:-}" -export REDIS_SENTINEL_PORT_NUMBER="${REDIS_SENTINEL_PORT_NUMBER:-26379}" -export REDIS_DISABLE_COMMANDS="${REDIS_DISABLE_COMMANDS:-}" -export REDIS_MASTER_HOST="${REDIS_MASTER_HOST:-}" -export REDIS_MASTER_PORT_NUMBER="${REDIS_MASTER_PORT_NUMBER:-6379}" -export REDIS_MASTER_PASSWORD="${REDIS_MASTER_PASSWORD:-}" -export REDIS_PASSWORD="${REDIS_PASSWORD:-}" -export REDIS_REPLICATION_MODE="${REDIS_REPLICATION_MODE:-}" -export ALLOW_EMPTY_PASSWORD="${ALLOW_EMPTY_PASSWORD:-no}" -EOF - if [[ -f "${REDIS_PASSWORD_FILE:-}" ]]; then - cat <<"EOF" -export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" -EOF - fi - if [[ -f "${REDIS_MASTER_PASSWORD_FILE:-}" ]]; then - cat <<"EOF" -export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")" -EOF - fi -} - -######################## -# Validate settings in REDIS_* env vars. -# Globals: -# REDIS_* -# Arguments: -# None -# Returns: -# None -######################### -redis_validate() { - debug "Validating settings in REDIS_* env vars.." - local error_code=0 - - # Auxiliary functions - print_validation_error() { - error "$1" - error_code=1 - } - - empty_password_enabled_warn() { - warn "You set the environment variable ALLOW_EMPTY_PASSWORD=${ALLOW_EMPTY_PASSWORD}. For safety reasons, do not use this flag in a production environment." - } - empty_password_error() { - print_validation_error "The $1 environment variable is empty or not set. Set the environment variable ALLOW_EMPTY_PASSWORD=yes to allow the container to be started with blank passwords. This is recommended only for development." - } - - if is_boolean_yes "$ALLOW_EMPTY_PASSWORD"; then - empty_password_enabled_warn - else - [[ -z "$REDIS_PASSWORD" ]] && empty_password_error REDIS_PASSWORD - fi - if [[ -n "$REDIS_REPLICATION_MODE" ]]; then - if [[ "$REDIS_REPLICATION_MODE" =~ ^(slave|replica)$ ]]; then - if [[ -n "$REDIS_MASTER_PORT_NUMBER" ]]; then - if ! err=$(validate_port "$REDIS_MASTER_PORT_NUMBER"); then - print_validation_error "An invalid port was specified in the environment variable REDIS_MASTER_PORT_NUMBER: $err" - fi - fi - if ! is_boolean_yes "$ALLOW_EMPTY_PASSWORD" && [[ -z "$REDIS_MASTER_PASSWORD" ]]; then - empty_password_error REDIS_MASTER_PASSWORD - fi - elif [[ "$REDIS_REPLICATION_MODE" != "master" ]]; then - print_validation_error "Invalid replication mode. Available options are 'master/replica'" - fi - fi - - [[ "$error_code" -eq 0 ]] || exit "$error_code" -} - - - -######################## -# Configure Redis replication -# Globals: -# REDIS_BASEDIR -# Arguments: -# $1 - Replication mode -# Returns: -# None -######################### -redis_configure_replication() { - info "Configuring replication mode..." - - redis_conf_set replica-announce-ip "$(get_machine_ip)" - redis_conf_set replica-announce-port "$REDIS_MASTER_PORT_NUMBER" - if [[ "$REDIS_REPLICATION_MODE" = "master" ]]; then - if [[ -n "$REDIS_PASSWORD" ]]; then - redis_conf_set masterauth "$REDIS_PASSWORD" - fi - elif [[ "$REDIS_REPLICATION_MODE" =~ ^(slave|replica)$ ]]; then - if [[ -n "$REDIS_SENTINEL_HOST" ]]; then - REDIS_SENTINEL_INFO=($(redis-cli -h "$REDIS_SENTINEL_HOST" -p "$REDIS_SENTINEL_PORT_NUMBER" sentinel get-master-addr-by-name "$REDIS_SENTINEL_MASTER_NAME")) - REDIS_MASTER_HOST=${REDIS_SENTINEL_INFO[0]} - REDIS_MASTER_PORT_NUMBER=${REDIS_SENTINEL_INFO[1]} - fi - wait-for-port --host "$REDIS_MASTER_HOST" "$REDIS_MASTER_PORT_NUMBER" - [[ -n "$REDIS_MASTER_PASSWORD" ]] && redis_conf_set masterauth "$REDIS_MASTER_PASSWORD" - # Starting with Redis 5, use 'replicaof' instead of 'slaveof'. Maintaining both for backward compatibility - local parameter="replicaof" - [[ $(redis_major_version) -lt 5 ]] && parameter="slaveof" - redis_conf_set "$parameter" "$REDIS_MASTER_HOST $REDIS_MASTER_PORT_NUMBER" - fi -} - -######################## -# Disable Redis command(s) -# Globals: -# REDIS_BASEDIR -# Arguments: -# $1 - Array of commands to disable -# Returns: -# None -######################### -redis_disable_unsafe_commands() { - # The current syntax gets a comma separated list of commands, we split them - # before passing to redis_disable_unsafe_commands - read -r -a disabledCommands <<< "$(tr ',' ' ' <<< "$REDIS_DISABLE_COMMANDS")" - debug "Disabling commands: ${disabledCommands[*]}" - for cmd in "${disabledCommands[@]}"; do - if grep -E -q "^\s*rename-command\s+$cmd\s+\"\"\s*$" "${REDIS_BASEDIR}/etc/redis.conf"; then - debug "$cmd was already disabled" - continue - fi - echo "rename-command $cmd \"\"" >> "$REDIS_BASEDIR/etc/redis.conf" - done -} - -######################## -# Ensure Redis is initialized -# Globals: -# REDIS_* -# Arguments: -# None -# Returns: -# None -######################### -redis_initialize() { - info "Initializing Redis..." - - # This fixes an issue where the trap would kill the entrypoint.sh, if a PID was left over from a previous run - # Exec replaces the process without creating a new one, and when the container is restarted it may have the same PID - rm -f "$REDIS_BASEDIR/tmp/redis.pid" - - # User injected custom configuration - if [[ -e "$REDIS_BASEDIR/etc/redis.conf" ]]; then - if [[ -e "$REDIS_BASEDIR/etc/redis-default.conf" ]]; then - rm "${REDIS_BASEDIR}/etc/redis-default.conf" - fi - else - debug "Ensuring expected directories/files exist..." - for dir in "${REDIS_VOLUME}/data" "${REDIS_BASEDIR}/tmp" "${REDIS_LOGDIR}"; do - ensure_dir_exists "$dir" - if am_i_root; then - chown "$REDIS_DAEMON_USER:$REDIS_DAEMON_GROUP" "$dir" - fi - done - mv "$REDIS_BASEDIR/etc/redis-default.conf" "$REDIS_BASEDIR/etc/redis.conf" - - # Redis config - debug "Setting Redis config file..." - redis_conf_set dir "${REDIS_VOLUME}/data" - redis_conf_set logfile "" # Log to stdout - redis_conf_set pidfile "${REDIS_BASEDIR}/tmp/redis.pid" - redis_conf_set daemonize yes - redis_conf_set bind 0.0.0.0 # Allow remote connections - # Enable AOF https://redis.io/topics/persistence#append-only-file - # Leave default fsync (every second) - redis_conf_set appendonly yes - # Disable RDB persistence, AOF persistence already enabled. - # Ref: https://redis.io/topics/persistence#interactions-between-aof-and-rdb-persistence - redis_conf_set save "" - if [[ -n "$REDIS_PASSWORD" ]]; then - redis_conf_set requirepass "$REDIS_PASSWORD" - else - redis_conf_unset requirepass - fi - if [[ -n "$REDIS_DISABLE_COMMANDS" ]]; then - redis_disable_unsafe_commands - fi - # Configure Replication mode - if [[ -n "$REDIS_REPLICATION_MODE" ]]; then - redis_configure_replication - fi - fi -} diff --git a/bitnami/redis/4.0/ol-7/rootfs/licenses/licenses.txt b/bitnami/redis/4.0/ol-7/rootfs/licenses/licenses.txt deleted file mode 100644 index c76ba31f3b8a..000000000000 --- a/bitnami/redis/4.0/ol-7/rootfs/licenses/licenses.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bitnami containers ship with software bundles. You can find the licenses under: -/opt/bitnami/nami/COPYING -/opt/bitnami/[name-of-bundle]/licenses/[bundle-version].txt diff --git a/bitnami/redis/4.0/ol-7/rootfs/postunpack.sh b/bitnami/redis/4.0/ol-7/rootfs/postunpack.sh deleted file mode 100755 index b82f7d5e18f3..000000000000 --- a/bitnami/redis/4.0/ol-7/rootfs/postunpack.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# shellcheck disable=SC1091 - -# Load libraries -. /libredis.sh -. /libfs.sh - -# Load Redis environment variables -eval "$(redis_env)" - -for dir in "$REDIS_VOLUME" "${REDIS_VOLUME}/data" ; do - ensure_dir_exists "$dir" -done -chmod -R g+rwX /bitnami "$REDIS_VOLUME" "$REDIS_BASEDIR" diff --git a/bitnami/redis/4.0/ol-7/rootfs/run.sh b/bitnami/redis/4.0/ol-7/rootfs/run.sh deleted file mode 100755 index 4c41ff7462b9..000000000000 --- a/bitnami/redis/4.0/ol-7/rootfs/run.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -set -o errexit -set -o nounset -set -o pipefail -# set -o xtrace -# shellcheck disable=SC1091 - -# Load libraries -. /libos.sh -. /libredis.sh - -# Load Redis environment variables -eval "$(redis_env)" - -# Constants -REDIS_EXTRA_FLAGS=${REDIS_EXTRA_FLAGS:-} -EXEC=$(command -v redis-server) - -args=("$REDIS_BASEDIR/etc/redis.conf" "--daemonize" "no" "$@") -# configure extra command line flags -if [[ -n "$REDIS_EXTRA_FLAGS" ]]; then - warn "REDIS_EXTRA_FLAGS is deprecated. Please specify any extra-flag using '/run.sh $REDIS_EXTRA_FLAGS' as command instead" - read -r -a envExtraFlags <<< "$REDIS_EXTRA_FLAGS" - args+=("${envExtraFlags[@]}") -fi - -info "** Starting Redis **" -if am_i_root; then - exec gosu "$REDIS_DAEMON_USER" "$EXEC" "${args[@]}" -else - exec "$EXEC" "${args[@]}" -fi diff --git a/bitnami/redis/4.0/ol-7/rootfs/setup.sh b/bitnami/redis/4.0/ol-7/rootfs/setup.sh deleted file mode 100755 index 13408af7ad41..000000000000 --- a/bitnami/redis/4.0/ol-7/rootfs/setup.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -set -o errexit -set -o nounset -set -o pipefail -#set -o xtrace -# shellcheck disable=SC1091 - -# Load libraries -. /libos.sh -. /libfs.sh -. /libredis.sh - -# Load Redis environment variables -eval "$(redis_env)" - -# Ensure Redis environment variables settings are valid -redis_validate -# Ensure Redis is stopped when this script ends -trap "redis_stop" EXIT -am_i_root && ensure_user_exists "$REDIS_DAEMON_USER" "$REDIS_DAEMON_GROUP" -# Ensure Redis is initialized -redis_initialize diff --git a/bitnami/redis/5.0/ol-7/Dockerfile b/bitnami/redis/5.0/ol-7/Dockerfile deleted file mode 100644 index 26ab0db74f00..000000000000 --- a/bitnami/redis/5.0/ol-7/Dockerfile +++ /dev/null @@ -1,34 +0,0 @@ -FROM oraclelinux:7-slim -LABEL maintainer "Bitnami " - -ENV BITNAMI_PKG_CHMOD="-R g+rwX" \ - HOME="/" \ - OS_ARCH="x86_64" \ - OS_FLAVOUR="ol-7" \ - OS_NAME="linux" - -COPY prebuildfs / -# Install required system packages and dependencies -RUN install_packages ca-certificates curl glibc gzip hostname libaio-devel procps-ng sudo tar unzip which -RUN . ./libcomponent.sh && component_unpack "redis" "5.0.7-0" --checksum 21935196027fe2f029041b772546a328a1d5f0d6e7f7f3679f3c2008a8958957 -RUN yum upgrade -y && \ - rm -r /var/cache/yum -RUN /build/install-gosu.sh -RUN curl --silent -L https://github.com/bitnami/wait-for-port/releases/download/v1.0/wait-for-port.zip > /tmp/wait-for-port.zip && \ - echo "8d26181f4629211b70db4f96236616056b1ed8e5920d8023f7c883071e76c1ed /tmp/wait-for-port.zip" | sha256sum --check && \ - unzip -q -d /usr/local/bin -o /tmp/wait-for-port.zip wait-for-port && \ - mkdir -p /opt/bitnami/licenses && \ - curl --silent -L https://raw.githubusercontent.com/bitnami/wait-for-port/master/COPYING > /opt/bitnami/licenses/wait-for-port-1.0.txt - -COPY rootfs / -RUN /postunpack.sh -ENV BITNAMI_APP_NAME="redis" \ - BITNAMI_IMAGE_VERSION="5.0.7-ol-7-r93" \ - NAMI_PREFIX="/.nami" \ - PATH="/opt/bitnami/redis/bin:$PATH" - -EXPOSE 6379 - -USER 1001 -ENTRYPOINT [ "/entrypoint.sh" ] -CMD [ "/run.sh" ] diff --git a/bitnami/redis/5.0/ol-7/docker-compose.yml b/bitnami/redis/5.0/ol-7/docker-compose.yml deleted file mode 100644 index 7c686939555a..000000000000 --- a/bitnami/redis/5.0/ol-7/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '2' - -services: - redis: - image: 'bitnami/redis:5.0-ol-7' - environment: - # ALLOW_EMPTY_PASSWORD is recommended only for development. - - ALLOW_EMPTY_PASSWORD=yes - - REDIS_DISABLE_COMMANDS=FLUSHDB,FLUSHALL - ports: - - '6379:6379' - volumes: - - 'redis_data:/bitnami/redis/data' - -volumes: - redis_data: - driver: local diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/build/install-gosu.sh b/bitnami/redis/5.0/ol-7/prebuildfs/build/install-gosu.sh deleted file mode 100755 index 1756700daa89..000000000000 --- a/bitnami/redis/5.0/ol-7/prebuildfs/build/install-gosu.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -VERSION="1.11" -SHA256="0b843df6d86e270c5b0f5cbd3c326a04e18f4b7f9b8457fa497b0454c4b138d7" - -curl --silent -L "https://github.com/tianon/gosu/releases/download/${VERSION}/gosu-amd64" > "/usr/local/bin/gosu" -echo "$SHA256" "/usr/local/bin/gosu" | sha256sum --check -chmod u+x "/usr/local/bin/gosu" -mkdir -p "/opt/bitnami/licenses" -curl --silent -L "https://raw.githubusercontent.com/tianon/gosu/master/LICENSE" > "/opt/bitnami/licenses/gosu-${VERSION}.txt" diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/libbitnami.sh b/bitnami/redis/5.0/ol-7/prebuildfs/libbitnami.sh deleted file mode 100644 index 529c3fd4a3e2..000000000000 --- a/bitnami/redis/5.0/ol-7/prebuildfs/libbitnami.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# -# Bitnami custom library - -# Load Generic Libraries -. /liblog.sh - -# Constants -BOLD='\033[1m' - -# Functions - -######################## -# Print the welcome page -# Globals: -# DISABLE_WELCOME_MESSAGE -# BITNAMI_APP_NAME -# Arguments: -# None -# Returns: -# None -######################### -print_welcome_page() { - if [[ -z "${DISABLE_WELCOME_MESSAGE:-}" ]]; then - if [[ -n "$BITNAMI_APP_NAME" ]]; then - print_image_welcome_page - fi - fi -} - -######################## -# Print the welcome page for a Bitnami Docker image -# Globals: -# BITNAMI_APP_NAME -# Arguments: -# None -# Returns: -# None -######################### -print_image_welcome_page() { - local github_url="https://github.com/bitnami/bitnami-docker-${BITNAMI_APP_NAME}" - - log "" - log "${BOLD}Welcome to the Bitnami ${BITNAMI_APP_NAME} container${RESET}" - log "Subscribe to project updates by watching ${BOLD}${github_url}${RESET}" - log "Submit issues and feature requests at ${BOLD}${github_url}/issues${RESET}" - log "Send us your feedback at ${BOLD}containers@bitnami.com${RESET}" - log "" -} - diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/libcomponent.sh b/bitnami/redis/5.0/ol-7/prebuildfs/libcomponent.sh deleted file mode 100644 index 025288664f69..000000000000 --- a/bitnami/redis/5.0/ol-7/prebuildfs/libcomponent.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -# -# Library for managing Bitnami components - -# Constants -CACHE_ROOT="/tmp/bitnami/pkg/cache" -DOWNLOAD_URL="https://downloads.bitnami.com/files/stacksmith" - -# Functions - -######################## -# Download and unpack a Bitnami package -# Globals: -# OS_NAME -# OS_ARCH -# OS_FLAVOUR -# Arguments: -# $1 - component's name -# $2 - component's version -# Returns: -# None -######################### -component_unpack() { - local name="${1:?name is required}" - local version="${2:?version is required}" - local base_name="${name}-${version}-${OS_NAME}-${OS_ARCH}-${OS_FLAVOUR}" - local package_sha256="" - - # Validate arguments - shift 2 - while [ "$#" -gt 0 ]; do - case "$1" in - -c|--checksum) - shift - package_sha256="${1:?missing package checksum}" - ;; - *) - echo "Invalid command line flag $1" >&2 - return 1 - ;; - esac - shift - done - - echo "Downloading $base_name package" - if [ -f "${CACHE_ROOT}/${base_name}.tar.gz" ]; then - echo "${CACHE_ROOT}/${base_name}.tar.gz already exists, skipping download." - cp "${CACHE_ROOT}/${base_name}.tar.gz" . - rm "${CACHE_ROOT}/${base_name}.tar.gz" - if [ -f "${CACHE_ROOT}/${base_name}.tar.gz.sha256" ]; then - echo "Using the local sha256 from ${CACHE_ROOT}/${base_name}.tar.gz.sha256" - package_sha256="$(< "${CACHE_ROOT}/${base_name}.tar.gz.sha256")" - rm "${CACHE_ROOT}/${base_name}.tar.gz.sha256" - fi - else - curl --remote-name --silent "${DOWNLOAD_URL}/${base_name}.tar.gz" - fi - if [ -n "$package_sha256" ]; then - echo "Verifying package integrity" - echo "$package_sha256 ${base_name}.tar.gz" | sha256sum --check - - fi - tar --directory /opt/bitnami --extract --gunzip --file "${base_name}.tar.gz" --no-same-owner --strip-components=2 "${base_name}/files/" - rm "${base_name}.tar.gz" -} diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/libfile.sh b/bitnami/redis/5.0/ol-7/prebuildfs/libfile.sh deleted file mode 100644 index 337e2e779701..000000000000 --- a/bitnami/redis/5.0/ol-7/prebuildfs/libfile.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -# -# Library for managing files - -# Functions - -######################## -# Replace a regex in a file -# Arguments: -# $1 - filename -# $2 - match regex -# $3 - substitute regex -# $4 - use POSIX regex. Default: true -# Returns: -# None -######################### -replace_in_file() { - local filename="${1:?filename is required}" - local match_regex="${2:?match regex is required}" - local substitute_regex="${3:?substitute regex is required}" - local posix_regex=${4:-true} - - local result - - # We should avoid using 'sed in-place' substitutions - # 1) They are not compatible with files mounted from ConfigMap(s) - # 2) We found incompatibility issues with Debian10 and "in-place" substitutions - if [[ $posix_regex = true ]]; then - result="$(sed -E "s@$match_regex@$substitute_regex@g" "$filename")" - else - result="$(sed "s@$match_regex@$substitute_regex@g" "$filename")" - fi - echo "$result" > "$filename" -} - -######################## -# Remove a line in a file based on a regex -# Arguments: -# $1 - filename -# $2 - match regex -# $3 - use POSIX regex. Default: true -# Returns: -# None -######################### -remove_in_file() { - local filename="${1:?filename is required}" - local match_regex="${2:?match regex is required}" - local posix_regex=${3:-true} - local result - - # We should avoid using 'sed in-place' substitutions - # 1) They are not compatible with files mounted from ConfigMap(s) - # 2) We found incompatibility issues with Debian10 and "in-place" substitutions - if [[ $posix_regex = true ]]; then - result="$(sed -E "/$match_regex/d" "$filename")" - else - result="$(sed "/$match_regex/d" "$filename")" - fi - echo "$result" > "$filename" -} diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/libfs.sh b/bitnami/redis/5.0/ol-7/prebuildfs/libfs.sh deleted file mode 100644 index 10a24735c096..000000000000 --- a/bitnami/redis/5.0/ol-7/prebuildfs/libfs.sh +++ /dev/null @@ -1,129 +0,0 @@ -#!/bin/bash -# -# Library for file system actions - -# Load Generic Libraries -. /liblog.sh - -# Functions - -######################## -# Ensure a file/directory is owned (user and group) but the given user -# Arguments: -# $1 - filepath -# $2 - owner -# Returns: -# None -######################### -owned_by() { - local path="${1:?path is missing}" - local owner="${2:?owner is missing}" - - chown "$owner":"$owner" "$path" -} - -######################## -# Ensure a directory exists and, optionally, is owned by the given user -# Arguments: -# $1 - directory -# $2 - owner -# Returns: -# None -######################### -ensure_dir_exists() { - local dir="${1:?directory is missing}" - local owner="${2:-}" - - mkdir -p "${dir}" - if [[ -n $owner ]]; then - owned_by "$dir" "$owner" - fi -} - -######################## -# Checks whether a directory is empty or not -# Arguments: -# $1 - directory -# Returns: -# Boolean -######################### -is_dir_empty() { - local dir="${1:?missing directory}" - - if [[ ! -e "$dir" ]] || [[ -z "$(ls -A "$dir")" ]]; then - true - else - false - fi -} - -######################## -# Configure permisions and ownership recursively -# Globals: -# None -# Arguments: -# $1 - paths (as a string). -# Flags: -# -f|--file-mode - mode for directories. -# -d|--dir-mode - mode for files. -# -u|--user - user -# -g|--group - group -# Returns: -# None -######################### -configure_permissions_ownership() { - local -r paths="${1:?paths is missing}" - local dir_mode="" - local file_mode="" - local user="" - local group="" - - # Validate arguments - shift 1 - while [ "$#" -gt 0 ]; do - case "$1" in - -f|--file-mode) - shift - file_mode="${1:?missing mode for files}" - ;; - -d|--dir-mode) - shift - dir_mode="${1:?missing mode for directories}" - ;; - -u|--user) - shift - user="${1:?missing user}" - ;; - -g|--group) - shift - group="${1:?missing group}" - ;; - *) - echo "Invalid command line flag $1" >&2 - return 1 - ;; - esac - shift - done - - read -r -a filepaths <<< "$paths" - for p in "${filepaths[@]}"; do - if [[ -e "$p" ]]; then - if [[ -n $dir_mode ]]; then - find -L "$p" -type d -exec chmod "$dir_mode" {} \; - fi - if [[ -n $file_mode ]]; then - find -L "$p" -type f -exec chmod "$file_mode" {} \; - fi - if [[ -n $user ]] && [[ -n $group ]]; then - chown -LR "$user":"$group" "$p" - elif [[ -n $user ]] && [[ -z $group ]]; then - chown -LR "$user" "$p" - elif [[ -z $user ]] && [[ -n $group ]]; then - chgrp -LR "$group" "$p" - fi - else - stderr_print "$p does not exist" - fi - done -} diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/liblog.sh b/bitnami/redis/5.0/ol-7/prebuildfs/liblog.sh deleted file mode 100644 index 04118273394a..000000000000 --- a/bitnami/redis/5.0/ol-7/prebuildfs/liblog.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/bash -# -# Library for logging functions - -# Constants -RESET='\033[0m' -RED='\033[38;5;1m' -GREEN='\033[38;5;2m' -YELLOW='\033[38;5;3m' -MAGENTA='\033[38;5;5m' -CYAN='\033[38;5;6m' - -# Functions - -######################## -# Print to STDERR -# Arguments: -# Message to print -# Returns: -# None -######################### -stderr_print() { - printf "%b\\n" "${*}" >&2 -} - -######################## -# Log message -# Arguments: -# Message to log -# Returns: -# None -######################### -log() { - stderr_print "${CYAN}${MODULE:-} ${MAGENTA}$(date "+%T.%2N ")${RESET}${*}" -} -######################## -# Log an 'info' message -# Arguments: -# Message to log -# Returns: -# None -######################### -info() { - log "${GREEN}INFO ${RESET} ==> ${*}" -} -######################## -# Log message -# Arguments: -# Message to log -# Returns: -# None -######################### -warn() { - log "${YELLOW}WARN ${RESET} ==> ${*}" -} -######################## -# Log an 'error' message -# Arguments: -# Message to log -# Returns: -# None -######################### -error() { - log "${RED}ERROR${RESET} ==> ${*}" -} -######################## -# Log a 'debug' message -# Globals: -# BITNAMI_DEBUG -# Arguments: -# None -# Returns: -# None -######################### -debug() { - # 'is_boolean_yes' is defined in libvalidations.sh, but depends on this file so we cannot source it - local -r bool="${BITNAMI_DEBUG:-false}" - # comparison is performed without regard to the case of alphabetic characters - shopt -s nocasematch - if [[ "$bool" = 1 || "$bool" =~ ^(yes|true)$ ]]; then - log "${MAGENTA}DEBUG${RESET} ==> ${*}" - fi -} diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/libnet.sh b/bitnami/redis/5.0/ol-7/prebuildfs/libnet.sh deleted file mode 100644 index f884b7661fd7..000000000000 --- a/bitnami/redis/5.0/ol-7/prebuildfs/libnet.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# -# Library for network functions - -# Functions - -######################## -# Resolve dns -# Arguments: -# $1 - Hostname to resolve -# Returns: -# IP -######################### -dns_lookup() { - local host="${1:?host is missing}" - getent ahosts "$host" | awk '/STREAM/ {print $1 }' -} - -######################## -# Get machine's IP -# Arguments: -# None -# Returns: -# Machine IP -######################### -get_machine_ip() { - dns_lookup "$(hostname)" -} - -######################## -# Check if the provided argument is a resolved hostname -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_hostname_resolved() { - local -r host="${1:?missing value}" - if [[ -n "$(dns_lookup "$host")" ]]; then - true - else - false - fi -} diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/libos.sh b/bitnami/redis/5.0/ol-7/prebuildfs/libos.sh deleted file mode 100644 index 1a5ba3bb2a64..000000000000 --- a/bitnami/redis/5.0/ol-7/prebuildfs/libos.sh +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/bash -# -# Library for operating system actions - -# Functions - -######################## -# Check if an user exists in the system -# Arguments: -# $1 - user -# Returns: -# Boolean -######################### -user_exists() { - local user="${1:?user is missing}" - id "$user" >/dev/null 2>&1 -} - -######################## -# Check if a group exists in the system -# Arguments: -# $1 - group -# Returns: -# Boolean -######################### -group_exists() { - local group="${1:?group is missing}" - getent group "$group" >/dev/null 2>&1 -} - -######################## -# Create a group in the system if it does not exist already -# Arguments: -# $1 - group -# Returns: -# None -######################### -ensure_group_exists() { - local group="${1:?group is missing}" - - if ! group_exists "$group"; then - groupadd "$group" >/dev/null 2>&1 - fi -} - -######################## -# Create an user in the system if it does not exist already -# Arguments: -# $1 - user -# $2 - group -# Returns: -# None -######################### -ensure_user_exists() { - local user="${1:?user is missing}" - local group="${2:-}" - - if ! user_exists "$user"; then - useradd "$user" >/dev/null 2>&1 - if [[ -n "$group" ]]; then - ensure_group_exists "$group" - usermod -a -G "$group" "$user" >/dev/null 2>&1 - fi - fi -} - -######################## -# Check if the script is currently running as root -# Arguments: -# $1 - user -# $2 - group -# Returns: -# Boolean -######################### -am_i_root() { - if [[ "$(id -u)" = "0" ]]; then - true - else - false - fi -} - -######################## -# Get total memory available -# Arguments: -# None -# Returns: -# Memory in bytes -######################### -get_total_memory() { - echo $(($(grep MemTotal /proc/meminfo | awk '{print $2}') / 1024)) -} - -######################### -# Redirects output to /dev/null if debug mode is disabled -# Globals: -# BITNAMI_DEBUG -# Arguments: -# $@ - Command to execute -# Returns: -# None -######################### -debug_execute() { - if ${BITNAMI_DEBUG:-false}; then - "$@" - else - "$@" >/dev/null 2>&1 - fi -} - -######################## -# Retries a command a given number of times -# Arguments: -# $1 - cmd (as a string) -# $2 - max retries. Default: 12 -# $3 - sleep between retries (in seconds). Default: 5 -# Returns: -# Boolean -######################### -retry_while() { - local -r cmd="${1:?cmd is missing}" - local -r retries="${2:-12}" - local -r sleep_time="${3:-5}" - local return_value=1 - - read -r -a command <<< "$cmd" - for ((i = 1 ; i <= retries ; i+=1 )); do - "${command[@]}" && return_value=0 && break - sleep "$sleep_time" - done - return $return_value -} diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/libservice.sh b/bitnami/redis/5.0/ol-7/prebuildfs/libservice.sh deleted file mode 100644 index 0a83cd3d927f..000000000000 --- a/bitnami/redis/5.0/ol-7/prebuildfs/libservice.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash -# -# Library for managing services - -# Functions - -######################## -# Read the provided pid file and returns a PID -# Arguments: -# $1 - Pid file -# Returns: -# PID -######################### -get_pid_from_file() { - local pid_file="${1:?pid file is missing}" - - if [[ -f "$pid_file" ]]; then - if [[ -n "$(< "$pid_file")" ]] && [[ "$(< "$pid_file")" -gt 0 ]]; then - echo "$(< "$pid_file")" - fi - fi -} - -######################## -# Check if a provided PID corresponds to a running service -# Arguments: -# $1 - PID -# Returns: -# Boolean -######################### -is_service_running() { - local pid="${1:?pid is missing}" - - kill -0 "$pid" 2>/dev/null -} - -######################## -# Stop a service by sending a termination signal to its pid -# Arguments: -# $1 - Pid file -# Returns: -# None -######################### -stop_service_using_pid() { - local pid_file="${1:?pid file is missing}" - local pid - - pid="$(get_pid_from_file "$pid_file")" - [[ -z "$pid" ]] || ! is_service_running "$pid" && return - - kill "$pid" - local counter=10 - while [[ "$counter" -ne 0 ]] && is_service_running "$pid"; do - sleep 1 - counter=$((counter - 1)) - done -} diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/libvalidations.sh b/bitnami/redis/5.0/ol-7/prebuildfs/libvalidations.sh deleted file mode 100644 index ef9aaf0cf31f..000000000000 --- a/bitnami/redis/5.0/ol-7/prebuildfs/libvalidations.sh +++ /dev/null @@ -1,246 +0,0 @@ -#!/bin/bash -# -# Validation functions library - -# Load Generic Libraries -. /liblog.sh - -# Functions - -######################## -# Check if the provided argument is an integer -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_int() { - local -r int="${1:?missing value}" - if [[ "$int" =~ ^-?[0-9]+ ]]; then - true - else - false - fi -} - -######################## -# Check if the provided argument is a positive integer -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_positive_int() { - local -r int="${1:?missing value}" - if is_int "$int" && (( "${int}" >= 0 )); then - true - else - false - fi -} - -######################## -# Check if the provided argument is a boolean or is the string 'yes/true' -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_boolean_yes() { - local -r bool="${1:-}" - # comparison is performed without regard to the case of alphabetic characters - shopt -s nocasematch - if [[ "$bool" = 1 || "$bool" =~ ^(yes|true)$ ]]; then - true - else - false - fi -} - -######################## -# Check if the provided argument is a boolean yes/no value -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_yes_no_value() { - local -r bool="${1:-}" - if [[ "$bool" =~ ^(yes|no)$ ]]; then - true - else - false - fi -} - -######################## -# Check if the provided argument is a boolean true/false value -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_true_false_value() { - local -r bool="${1:-}" - if [[ "$bool" =~ ^(true|false)$ ]]; then - true - else - false - fi -} - -######################## -# Check if the provided argument is an empty string or not defined -# Arguments: -# $1 - Value to check -# Returns: -# Boolean -######################### -is_empty_value() { - local -r val="${1:-}" - if [[ -z "$val" ]]; then - true - else - false - fi -} - -######################## -# Validate if the provided argument is a valid port -# Arguments: -# $1 - Port to validate -# Returns: -# Boolean and error message -######################### -validate_port() { - local value - local unprivileged=0 - - # Parse flags - while [[ "$#" -gt 0 ]]; do - case "$1" in - -unprivileged) - unprivileged=1 - ;; - --) - shift - break - ;; - -*) - stderr_print "unrecognized flag $1" - return 1 - ;; - *) - break - ;; - esac - shift - done - - if [[ "$#" -gt 1 ]]; then - echo "too many arguments provided" - return 2 - elif [[ "$#" -eq 0 ]]; then - stderr_print "missing port argument" - return 1 - else - value=$1 - fi - - if [[ -z "$value" ]]; then - echo "the value is empty" - return 1 - else - if ! is_int "$value"; then - echo "value is not an integer" - return 2 - elif [[ "$value" -lt 0 ]]; then - echo "negative value provided" - return 2 - elif [[ "$value" -gt 65535 ]]; then - echo "requested port is greater than 65535" - return 2 - elif [[ "$unprivileged" = 1 && "$value" -lt 1024 ]]; then - echo "privileged port requested" - return 3 - fi - fi -} - -######################## -# Validate if the provided argument is a valid IPv4 address -# Arguments: -# $1 - IP to validate -# Returns: -# Boolean -######################### -validate_ipv4() { - local ip="${1:?ip is missing}" - local stat=1 - - if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then - read -r -a ip_array <<< "$(tr '.' ' ' <<< "$ip")" - [[ ${ip_array[0]} -le 255 && ${ip_array[1]} -le 255 \ - && ${ip_array[2]} -le 255 && ${ip_array[3]} -le 255 ]] - stat=$? - fi - return $stat -} - -######################## -# Validate a string format -# Arguments: -# $1 - String to validate -# Returns: -# Boolean -######################### -validate_string() { - local string - local min_length=-1 - local max_length=-1 - - # Parse flags - while [ "$#" -gt 0 ]; do - case "$1" in - -min-length) - shift - min_length=${1:-} - ;; - -max-length) - shift - max_length=${1:-} - ;; - --) - shift - break - ;; - -*) - stderr_print "unrecognized flag $1" - return 1 - ;; - *) - break - ;; - esac - shift - done - - if [ "$#" -gt 1 ]; then - stderr_print "too many arguments provided" - return 2 - elif [ "$#" -eq 0 ]; then - stderr_print "missing string" - return 1 - else - string=$1 - fi - - if [[ "$min_length" -ge 0 ]] && [[ "${#string}" -lt "$min_length" ]]; then - echo "string length is less than $min_length" - return 1 - fi - if [[ "$max_length" -ge 0 ]] && [[ "${#string}" -gt "$max_length" ]]; then - echo "string length is great than $max_length" - return 1 - fi -} diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/libversion.sh b/bitnami/redis/5.0/ol-7/prebuildfs/libversion.sh deleted file mode 100644 index b16090cfe1f4..000000000000 --- a/bitnami/redis/5.0/ol-7/prebuildfs/libversion.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# -# Library for managing versions strings - -# Load Generic Libraries -. ./liblog.sh - -# Functions -######################## -# Gets semantic version -# Arguments: -# $1 - version: string to extract major.minor.patch -# $2 - section: 1 to extract major, 2 to extract minor, 3 to extract patch -# Returns: -# array with the major, minor and release -######################### -get_sematic_version () { - local version="${1:?version is required}" - local section="${2:?section is required}" - local -a version_sections - - #Regex to parse versions: x.y.z - local -r regex='([0-9]+)(\.([0-9]+)(\.([0-9]+))?)?' - - if [[ "$version" =~ $regex ]]; then - local i=1 - local j=1 - local n=${#BASH_REMATCH[*]} - - while [[ $i -lt $n ]]; do - if [[ -n "${BASH_REMATCH[$i]}" ]] && [[ "${BASH_REMATCH[$i]:0:1}" != '.' ]]; then - version_sections[$j]=${BASH_REMATCH[$i]} - ((j++)) - fi - ((i++)) - done - - local number_regex='^[0-9]+$' - if [[ "$section" =~ $number_regex ]] && (( $section > 0 )) && (( $section <= 3 )); then - echo "${version_sections[$section]}" - return - else - stderr_print "Section allowed values are: 1, 2, and 3" - return 1 - fi - fi -} diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/opt/bitnami/.exists b/bitnami/redis/5.0/ol-7/prebuildfs/opt/bitnami/.exists deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/bitnami/redis/5.0/ol-7/prebuildfs/usr/local/bin/install_packages b/bitnami/redis/5.0/ol-7/prebuildfs/usr/local/bin/install_packages deleted file mode 100755 index 370f3516f403..000000000000 --- a/bitnami/redis/5.0/ol-7/prebuildfs/usr/local/bin/install_packages +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -set -eu - -if [[ -n "oracle-epel-release-el7" ]]; then - if ! yum list installed oracle-epel-release-el7 >/dev/null 2>&1; then - yum -y install oracle-epel-release-el7 >/dev/null 2>&1 - CODE=$? - if (( $CODE != 0 )); then - echo "EPEL repository installation failed" - exit $CODE - fi - fi -fi - -max=2 -for ((n = 1 ; n <= max ; n+=1 )); do - set +e - yum --enablerepo base,updates,ol7_developer_EPEL,ol7_optional_latest install -y "$@" - CODE=$? - set -e - if (( $CODE == 0 )); then - break - fi - if (( $n == $max )); then - exit $CODE - fi - echo "yum failed, retrying" -done -rm -r /var/cache/yum diff --git a/bitnami/redis/5.0/ol-7/rootfs/entrypoint.sh b/bitnami/redis/5.0/ol-7/rootfs/entrypoint.sh deleted file mode 100755 index 52465291e590..000000000000 --- a/bitnami/redis/5.0/ol-7/rootfs/entrypoint.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -set -o errexit -set -o nounset -set -o pipefail -#set -o xtrace -# shellcheck disable=SC1091 - -# Load libraries -. /libbitnami.sh -. /libredis.sh - -# Load Redis environment variables -eval "$(redis_env)" - -print_welcome_page - -if [[ "$*" = *"/run.sh"* ]]; then - info "** Starting Redis setup **" - /setup.sh - info "** Redis setup finished! **" -fi - -echo "" -exec "$@" diff --git a/bitnami/redis/5.0/ol-7/rootfs/libredis.sh b/bitnami/redis/5.0/ol-7/rootfs/libredis.sh deleted file mode 100644 index b2c69cb5615b..000000000000 --- a/bitnami/redis/5.0/ol-7/rootfs/libredis.sh +++ /dev/null @@ -1,388 +0,0 @@ -#!/bin/bash -# -# Bitnami Redis library - -# shellcheck disable=SC1091 - -# Load Generic Libraries -. /libfile.sh -. /liblog.sh -. /libnet.sh -. /libos.sh -. /libservice.sh -. /libvalidations.sh - -# Functions - -######################## -# Retrieve a configuration setting value -# Globals: -# REDIS_BASEDIR -# Arguments: -# $1 - key -# Returns: -# None -######################### -redis_conf_get() { - local key="${1:?missing key}" - - grep -E "^\s*$key " "${REDIS_BASEDIR}/etc/redis.conf" | awk '{print $2}' -} - -######################## -# Set a configuration setting value -# Globals: -# REDIS_BASEDIR -# Arguments: -# $1 - key -# $2 - value -# Returns: -# None -######################### -redis_conf_set() { - # TODO: improve this. Substitute action? - local key="${1:?missing key}" - local value="${2:-}" - - # Sanitize inputs - value="${value//\\/\\\\}" - value="${value//&/\\&}" - value="${value//\?/\\?}" - [[ "$value" = "" ]] && value="\"$value\"" - - replace_in_file "${REDIS_BASEDIR}/etc/redis.conf" "^#*\s*${key} .*" "${key} ${value}" false -} - -######################## -# Unset a configuration setting value -# Globals: -# REDIS_BASEDIR -# Arguments: -# $1 - key -# Returns: -# None -######################### -redis_conf_unset() { - # TODO: improve this. Substitute action? - local key="${1:?missing key}" - remove_in_file "${REDIS_BASEDIR}/etc/redis.conf" "^\s*$key .*" false -} - -######################## -# Get Redis version -# Globals: -# REDIS_BASEDIR -# Arguments: -# None -# Returns: -# Redis versoon -######################### -redis_version() { - "${REDIS_BASEDIR}/bin/redis-cli" --version | grep -E -o "[0-9]+.[0-9]+.[0-9]+" -} - -######################## -# Get Redis major version -# Globals: -# REDIS_BASEDIR -# Arguments: -# None -# Returns: -# Redis major version -######################### -redis_major_version() { - redis_version | grep -E -o "^[0-9]+" -} - -######################## -# Check if redis is running -# Globals: -# REDIS_BASEDIR -# Arguments: -# None -# Returns: -# Boolean -######################### -is_redis_running() { - local pid - pid="$(get_pid_from_file "$REDIS_BASEDIR/tmp/redis.pid")" - - if [[ -z "$pid" ]]; then - false - else - is_service_running "$pid" - fi -} - -######################## -# Stop Redis -# Globals: -# REDIS_* -# Arguments: -# None -# Returns: -# None -######################### -redis_stop() { - local pass - local port - local args - - ! is_redis_running && return - pass="$(redis_conf_get "requirepass")" - port="$(redis_conf_get "port")" - - [[ -n "$pass" ]] && args+=("-a" "\"$pass\"") - [[ "$port" != "0" ]] && args+=("-p" "$port") - - debug "Stopping Redis..." - if am_i_root; then - gosu "$REDIS_DAEMON_USER" "${REDIS_BASEDIR}/bin/redis-cli" "${args[@]}" shutdown - else - "${REDIS_BASEDIR}/bin/redis-cli" "${args[@]}" shutdown - fi - local counter=5 - while is_redis_running ; do - if [[ "$counter" -ne 0 ]]; then - break - fi - sleep 1; - counter=$((counter - 1)) - done -} - -######################## -# Start redis and wait until it's ready -# Globals: -# REDIS_* -# Arguments: -# None -# Returns: -# None -######################### -redis_start() { - is_redis_running && return - debug "Starting Redis..." - if am_i_root; then - gosu "$REDIS_DAEMON_USER" "${REDIS_BASEDIR}/bin/redis-server" "${REDIS_BASEDIR}/etc/redis.conf" - else - "${REDIS_BASEDIR}/bin/redis-server" "${REDIS_BASEDIR}/etc/redis.conf" - fi - local counter=3 - while ! is_redis_running ; do - if [[ "$counter" -ne 0 ]]; then - break - fi - sleep 1; - counter=$((counter - 1)) - done -} - -######################## -# Load global variables used on Redis configuration. -# Globals: -# REDIS_* -# Arguments: -# None -# Returns: -# Series of exports to be used as 'eval' arguments -######################### -redis_env() { - cat <<"EOF" -export REDIS_BASEDIR="/opt/bitnami/redis" -export REDIS_EXTRAS_DIR="/opt/bitnami/extra/redis" -export REDIS_VOLUME="/bitnami/redis" -export REDIS_TEMPLATES_DIR="${REDIS_EXTRAS_DIR}/templates" -export REDIS_TMPDIR="${REDIS_BASEDIR}/tmp" -export REDIS_LOGDIR="${REDIS_BASEDIR}/logs" -export PATH="${REDIS_BASEDIR}/bin:$PATH" -export REDIS_DAEMON_USER="redis" -export REDIS_DAEMON_GROUP="redis" -export REDIS_SENTINEL_HOST="${REDIS_SENTINEL_HOST:-}" -export REDIS_SENTINEL_MASTER_NAME="${REDIS_SENTINEL_MASTER_NAME:-}" -export REDIS_SENTINEL_PORT_NUMBER="${REDIS_SENTINEL_PORT_NUMBER:-26379}" -export REDIS_DISABLE_COMMANDS="${REDIS_DISABLE_COMMANDS:-}" -export REDIS_MASTER_HOST="${REDIS_MASTER_HOST:-}" -export REDIS_MASTER_PORT_NUMBER="${REDIS_MASTER_PORT_NUMBER:-6379}" -export REDIS_MASTER_PASSWORD="${REDIS_MASTER_PASSWORD:-}" -export REDIS_PASSWORD="${REDIS_PASSWORD:-}" -export REDIS_REPLICATION_MODE="${REDIS_REPLICATION_MODE:-}" -export ALLOW_EMPTY_PASSWORD="${ALLOW_EMPTY_PASSWORD:-no}" -EOF - if [[ -f "${REDIS_PASSWORD_FILE:-}" ]]; then - cat <<"EOF" -export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" -EOF - fi - if [[ -f "${REDIS_MASTER_PASSWORD_FILE:-}" ]]; then - cat <<"EOF" -export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")" -EOF - fi -} - -######################## -# Validate settings in REDIS_* env vars. -# Globals: -# REDIS_* -# Arguments: -# None -# Returns: -# None -######################### -redis_validate() { - debug "Validating settings in REDIS_* env vars.." - local error_code=0 - - # Auxiliary functions - print_validation_error() { - error "$1" - error_code=1 - } - - empty_password_enabled_warn() { - warn "You set the environment variable ALLOW_EMPTY_PASSWORD=${ALLOW_EMPTY_PASSWORD}. For safety reasons, do not use this flag in a production environment." - } - empty_password_error() { - print_validation_error "The $1 environment variable is empty or not set. Set the environment variable ALLOW_EMPTY_PASSWORD=yes to allow the container to be started with blank passwords. This is recommended only for development." - } - - if is_boolean_yes "$ALLOW_EMPTY_PASSWORD"; then - empty_password_enabled_warn - else - [[ -z "$REDIS_PASSWORD" ]] && empty_password_error REDIS_PASSWORD - fi - if [[ -n "$REDIS_REPLICATION_MODE" ]]; then - if [[ "$REDIS_REPLICATION_MODE" =~ ^(slave|replica)$ ]]; then - if [[ -n "$REDIS_MASTER_PORT_NUMBER" ]]; then - if ! err=$(validate_port "$REDIS_MASTER_PORT_NUMBER"); then - print_validation_error "An invalid port was specified in the environment variable REDIS_MASTER_PORT_NUMBER: $err" - fi - fi - if ! is_boolean_yes "$ALLOW_EMPTY_PASSWORD" && [[ -z "$REDIS_MASTER_PASSWORD" ]]; then - empty_password_error REDIS_MASTER_PASSWORD - fi - elif [[ "$REDIS_REPLICATION_MODE" != "master" ]]; then - print_validation_error "Invalid replication mode. Available options are 'master/replica'" - fi - fi - - [[ "$error_code" -eq 0 ]] || exit "$error_code" -} - - - -######################## -# Configure Redis replication -# Globals: -# REDIS_BASEDIR -# Arguments: -# $1 - Replication mode -# Returns: -# None -######################### -redis_configure_replication() { - info "Configuring replication mode..." - - redis_conf_set replica-announce-ip "$(get_machine_ip)" - redis_conf_set replica-announce-port "$REDIS_MASTER_PORT_NUMBER" - if [[ "$REDIS_REPLICATION_MODE" = "master" ]]; then - if [[ -n "$REDIS_PASSWORD" ]]; then - redis_conf_set masterauth "$REDIS_PASSWORD" - fi - elif [[ "$REDIS_REPLICATION_MODE" =~ ^(slave|replica)$ ]]; then - if [[ -n "$REDIS_SENTINEL_HOST" ]]; then - REDIS_SENTINEL_INFO=($(redis-cli -h "$REDIS_SENTINEL_HOST" -p "$REDIS_SENTINEL_PORT_NUMBER" sentinel get-master-addr-by-name "$REDIS_SENTINEL_MASTER_NAME")) - REDIS_MASTER_HOST=${REDIS_SENTINEL_INFO[0]} - REDIS_MASTER_PORT_NUMBER=${REDIS_SENTINEL_INFO[1]} - fi - wait-for-port --host "$REDIS_MASTER_HOST" "$REDIS_MASTER_PORT_NUMBER" - [[ -n "$REDIS_MASTER_PASSWORD" ]] && redis_conf_set masterauth "$REDIS_MASTER_PASSWORD" - # Starting with Redis 5, use 'replicaof' instead of 'slaveof'. Maintaining both for backward compatibility - local parameter="replicaof" - [[ $(redis_major_version) -lt 5 ]] && parameter="slaveof" - redis_conf_set "$parameter" "$REDIS_MASTER_HOST $REDIS_MASTER_PORT_NUMBER" - fi -} - -######################## -# Disable Redis command(s) -# Globals: -# REDIS_BASEDIR -# Arguments: -# $1 - Array of commands to disable -# Returns: -# None -######################### -redis_disable_unsafe_commands() { - # The current syntax gets a comma separated list of commands, we split them - # before passing to redis_disable_unsafe_commands - read -r -a disabledCommands <<< "$(tr ',' ' ' <<< "$REDIS_DISABLE_COMMANDS")" - debug "Disabling commands: ${disabledCommands[*]}" - for cmd in "${disabledCommands[@]}"; do - if grep -E -q "^\s*rename-command\s+$cmd\s+\"\"\s*$" "${REDIS_BASEDIR}/etc/redis.conf"; then - debug "$cmd was already disabled" - continue - fi - echo "rename-command $cmd \"\"" >> "$REDIS_BASEDIR/etc/redis.conf" - done -} - -######################## -# Ensure Redis is initialized -# Globals: -# REDIS_* -# Arguments: -# None -# Returns: -# None -######################### -redis_initialize() { - info "Initializing Redis..." - - # This fixes an issue where the trap would kill the entrypoint.sh, if a PID was left over from a previous run - # Exec replaces the process without creating a new one, and when the container is restarted it may have the same PID - rm -f "$REDIS_BASEDIR/tmp/redis.pid" - - # User injected custom configuration - if [[ -e "$REDIS_BASEDIR/etc/redis.conf" ]]; then - if [[ -e "$REDIS_BASEDIR/etc/redis-default.conf" ]]; then - rm "${REDIS_BASEDIR}/etc/redis-default.conf" - fi - else - debug "Ensuring expected directories/files exist..." - for dir in "${REDIS_VOLUME}/data" "${REDIS_BASEDIR}/tmp" "${REDIS_LOGDIR}"; do - ensure_dir_exists "$dir" - if am_i_root; then - chown "$REDIS_DAEMON_USER:$REDIS_DAEMON_GROUP" "$dir" - fi - done - mv "$REDIS_BASEDIR/etc/redis-default.conf" "$REDIS_BASEDIR/etc/redis.conf" - - # Redis config - debug "Setting Redis config file..." - redis_conf_set dir "${REDIS_VOLUME}/data" - redis_conf_set logfile "" # Log to stdout - redis_conf_set pidfile "${REDIS_BASEDIR}/tmp/redis.pid" - redis_conf_set daemonize yes - redis_conf_set bind 0.0.0.0 # Allow remote connections - # Enable AOF https://redis.io/topics/persistence#append-only-file - # Leave default fsync (every second) - redis_conf_set appendonly yes - # Disable RDB persistence, AOF persistence already enabled. - # Ref: https://redis.io/topics/persistence#interactions-between-aof-and-rdb-persistence - redis_conf_set save "" - if [[ -n "$REDIS_PASSWORD" ]]; then - redis_conf_set requirepass "$REDIS_PASSWORD" - else - redis_conf_unset requirepass - fi - if [[ -n "$REDIS_DISABLE_COMMANDS" ]]; then - redis_disable_unsafe_commands - fi - # Configure Replication mode - if [[ -n "$REDIS_REPLICATION_MODE" ]]; then - redis_configure_replication - fi - fi -} diff --git a/bitnami/redis/5.0/ol-7/rootfs/licenses/licenses.txt b/bitnami/redis/5.0/ol-7/rootfs/licenses/licenses.txt deleted file mode 100644 index c76ba31f3b8a..000000000000 --- a/bitnami/redis/5.0/ol-7/rootfs/licenses/licenses.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bitnami containers ship with software bundles. You can find the licenses under: -/opt/bitnami/nami/COPYING -/opt/bitnami/[name-of-bundle]/licenses/[bundle-version].txt diff --git a/bitnami/redis/5.0/ol-7/rootfs/postunpack.sh b/bitnami/redis/5.0/ol-7/rootfs/postunpack.sh deleted file mode 100755 index b82f7d5e18f3..000000000000 --- a/bitnami/redis/5.0/ol-7/rootfs/postunpack.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# shellcheck disable=SC1091 - -# Load libraries -. /libredis.sh -. /libfs.sh - -# Load Redis environment variables -eval "$(redis_env)" - -for dir in "$REDIS_VOLUME" "${REDIS_VOLUME}/data" ; do - ensure_dir_exists "$dir" -done -chmod -R g+rwX /bitnami "$REDIS_VOLUME" "$REDIS_BASEDIR" diff --git a/bitnami/redis/5.0/ol-7/rootfs/run.sh b/bitnami/redis/5.0/ol-7/rootfs/run.sh deleted file mode 100755 index 4c41ff7462b9..000000000000 --- a/bitnami/redis/5.0/ol-7/rootfs/run.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -set -o errexit -set -o nounset -set -o pipefail -# set -o xtrace -# shellcheck disable=SC1091 - -# Load libraries -. /libos.sh -. /libredis.sh - -# Load Redis environment variables -eval "$(redis_env)" - -# Constants -REDIS_EXTRA_FLAGS=${REDIS_EXTRA_FLAGS:-} -EXEC=$(command -v redis-server) - -args=("$REDIS_BASEDIR/etc/redis.conf" "--daemonize" "no" "$@") -# configure extra command line flags -if [[ -n "$REDIS_EXTRA_FLAGS" ]]; then - warn "REDIS_EXTRA_FLAGS is deprecated. Please specify any extra-flag using '/run.sh $REDIS_EXTRA_FLAGS' as command instead" - read -r -a envExtraFlags <<< "$REDIS_EXTRA_FLAGS" - args+=("${envExtraFlags[@]}") -fi - -info "** Starting Redis **" -if am_i_root; then - exec gosu "$REDIS_DAEMON_USER" "$EXEC" "${args[@]}" -else - exec "$EXEC" "${args[@]}" -fi diff --git a/bitnami/redis/5.0/ol-7/rootfs/setup.sh b/bitnami/redis/5.0/ol-7/rootfs/setup.sh deleted file mode 100755 index 13408af7ad41..000000000000 --- a/bitnami/redis/5.0/ol-7/rootfs/setup.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -set -o errexit -set -o nounset -set -o pipefail -#set -o xtrace -# shellcheck disable=SC1091 - -# Load libraries -. /libos.sh -. /libfs.sh -. /libredis.sh - -# Load Redis environment variables -eval "$(redis_env)" - -# Ensure Redis environment variables settings are valid -redis_validate -# Ensure Redis is stopped when this script ends -trap "redis_stop" EXIT -am_i_root && ensure_user_exists "$REDIS_DAEMON_USER" "$REDIS_DAEMON_GROUP" -# Ensure Redis is initialized -redis_initialize