From 22d112fce63c9c2ff2f286dc2c51412ffa17006c Mon Sep 17 00:00:00 2001 From: Bitnami Bot Date: Tue, 19 Oct 2021 12:18:23 +0000 Subject: [PATCH] 2021.10.13-debian-10-r1 release --- bitnami/minio/2021/debian-10/Dockerfile | 3 +- .../prebuildfs/opt/bitnami/scripts/libnet.sh | 21 +++++ .../rootfs/opt/bitnami/scripts/libminio.sh | 73 ++++-------------- .../opt/bitnami/scripts/libminioclient.sh | 38 ++------- .../opt/bitnami/scripts/minio-client-env.sh | 62 +++++++++++++++ .../scripts/minio-client/entrypoint.sh | 21 +++++ .../scripts/minio-client/postunpack.sh | 15 ++++ .../opt/bitnami/scripts/minio-client/run.sh | 26 +++++++ .../opt/bitnami/scripts/minio-client/setup.sh | 19 +++++ .../rootfs/opt/bitnami/scripts/minio-env.sh | 77 +++++++++++++++++++ .../opt/bitnami/scripts/minio/entrypoint.sh | 1 + .../opt/bitnami/scripts/minio/postunpack.sh | 19 ++--- .../rootfs/opt/bitnami/scripts/minio/run.sh | 10 +-- .../rootfs/opt/bitnami/scripts/minio/setup.sh | 26 ++++--- bitnami/minio/README.md | 66 +++++++++------- .../docker-compose-distributed-multidrive.yml | 8 +- bitnami/minio/docker-compose-distributed.yml | 16 ++-- 17 files changed, 340 insertions(+), 161 deletions(-) create mode 100644 bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client-env.sh create mode 100755 bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/entrypoint.sh create mode 100755 bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/postunpack.sh create mode 100755 bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/run.sh create mode 100755 bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/setup.sh create mode 100644 bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-env.sh diff --git a/bitnami/minio/2021/debian-10/Dockerfile b/bitnami/minio/2021/debian-10/Dockerfile index 474bee28a4eb..4eab73ee303a 100644 --- a/bitnami/minio/2021/debian-10/Dockerfile +++ b/bitnami/minio/2021/debian-10/Dockerfile @@ -15,9 +15,10 @@ RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "gosu" "1.14.0-0" RUN chmod g+rwX /opt/bitnami COPY rootfs / +RUN /opt/bitnami/scripts/minio-client/postunpack.sh RUN /opt/bitnami/scripts/minio/postunpack.sh ENV BITNAMI_APP_NAME="minio" \ - BITNAMI_IMAGE_VERSION="2021.10.13-debian-10-r0" \ + BITNAMI_IMAGE_VERSION="2021.10.13-debian-10-r1" \ PATH="/opt/bitnami/minio-client/bin:/opt/bitnami/minio/bin:/opt/bitnami/common/bin:$PATH" VOLUME [ "/certs", "/data" ] diff --git a/bitnami/minio/2021/debian-10/prebuildfs/opt/bitnami/scripts/libnet.sh b/bitnami/minio/2021/debian-10/prebuildfs/opt/bitnami/scripts/libnet.sh index 4391dacc7853..8bbf165e3e2a 100644 --- a/bitnami/minio/2021/debian-10/prebuildfs/opt/bitnami/scripts/libnet.sh +++ b/bitnami/minio/2021/debian-10/prebuildfs/opt/bitnami/scripts/libnet.sh @@ -140,3 +140,24 @@ parse_uri() { esac [[ "$uri" =~ $URI_REGEX ]] && echo "${BASH_REMATCH[${index}]}" } + +######################## +# Wait for a HTTP connection to succeed +# Globals: +# * +# Arguments: +# $1 - URL to wait for +# $2 - Maximum amount of retries (optional) +# $3 - Time between retries (optional) +# Returns: +# true if the HTTP connection succeeded, false otherwise +######################### +wait_for_http_connection() { + local url="${1:?missing url}" + local retries="${2:-}" + local sleep_time="${3:-}" + if ! retry_while "debug_execute curl --silent ${url}" "$retries" "$sleep_time"; then + error "Could not connect to ${url}" + return 1 + fi +} diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/libminio.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/libminio.sh index aaa30b9ceaf6..5bd3e7835736 100644 --- a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/libminio.sh +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/libminio.sh @@ -13,53 +13,6 @@ # Functions -######################## -# Load global variables used on MinIO configuration -# Globals: -# MINIO_* -# Arguments: -# None -# Returns: -# Series of exports to be used as 'eval' arguments -######################### -minio_env() { - cat <<"EOF" -export MINIO_BASEDIR="/opt/bitnami/minio" -export MINIO_LOGDIR="${MINIO_BASEDIR}/log" -export MINIO_SECRETSDIR="${MINIO_BASEDIR}/secrets" -export MINIO_DATADIR="/data" -export MINIO_CERTSDIR="${MINIO_CERTSDIR:-/certs}" -export MINIO_SCHEME="${MINIO_SCHEME:-http}" -export MINIO_SKIP_CLIENT="${MINIO_SKIP_CLIENT:-no}" -export MINIO_DISTRIBUTED_MODE_ENABLED="${MINIO_DISTRIBUTED_MODE_ENABLED:-no}" -export MINIO_DEFAULT_BUCKETS="${MINIO_DEFAULT_BUCKETS:-}" -export MINIO_API_PORT_NUMBER="${MINIO_API_PORT_NUMBER:-9000}" -export MINIO_CONSOLE_PORT_NUMBER="${MINIO_CONSOLE_PORT_NUMBER:-9001}" -export MINIO_DAEMON_USER="minio" -export MINIO_DAEMON_GROUP="minio" -export PATH="${MINIO_BASEDIR}/bin:$PATH" -export MINIO_FORCE_NEW_KEYS="${MINIO_FORCE_NEW_KEYS:-no}" -EOF - if [[ -n "${MINIO_ACCESS_KEY_FILE:-}" ]]; then - cat <<"EOF" -export MINIO_ACCESS_KEY="$(< "${MINIO_ACCESS_KEY_FILE}")" -EOF - else - cat <<"EOF" -export MINIO_ACCESS_KEY="${MINIO_ACCESS_KEY:-minio}" -EOF - fi - if [[ -n "${MINIO_SECRET_KEY_FILE:-}" ]]; then - cat <<"EOF" -export MINIO_SECRET_KEY="$(< "${MINIO_SECRET_KEY_FILE}")" -EOF - else - cat <<"EOF" -export MINIO_SECRET_KEY="${MINIO_SECRET_KEY:-miniosecret}" -EOF - fi -} - ######################## # Checks if MINIO_DISTRIBUTED_NODES uses the ellipses syntax {1...n} # Globals: @@ -134,7 +87,7 @@ is_minio_running() { ######################### minio_start_bg() { local -r exec=$(command -v minio) - local -a args=("server" "--certs-dir" "${MINIO_CERTSDIR}" "--console-address" ":${MINIO_CONSOLE_PORT_NUMBER}") + local -a args=("server" "--certs-dir" "${MINIO_CERTS_DIR}" "--console-address" ":${MINIO_CONSOLE_PORT_NUMBER}") local -a nodes if is_boolean_yes "$MINIO_DISTRIBUTED_MODE_ENABLED"; then @@ -143,11 +96,11 @@ minio_start_bg() { if is_distributed_ellipses_syntax; then args+=("${MINIO_SCHEME}://${node}") else - args+=("${MINIO_SCHEME}://${node}:${MINIO_API_PORT_NUMBER}/${MINIO_DATADIR}") + args+=("${MINIO_SCHEME}://${node}:${MINIO_API_PORT_NUMBER}/${MINIO_DATA_DIR}") fi done else - args+=("${MINIO_DATADIR}") + args+=("${MINIO_DATA_DIR}") fi is_minio_running && return @@ -218,8 +171,8 @@ minio_validate() { } if is_boolean_yes "$MINIO_DISTRIBUTED_MODE_ENABLED"; then - if [[ -z "${MINIO_ACCESS_KEY:-}" ]] || [[ -z "${MINIO_ACCESS_KEY:-}" ]]; then - print_validation_error "Distributed mode is enabled. Both MINIO_ACCESS_KEY and MINIO_ACCESS_KEY environment must be set" + if [[ -z "${MINIO_ROOT_USER:-}" ]] || [[ -z "${MINIO_ROOT_PASSWORD:-}" ]]; then + print_validation_error "Distributed mode is enabled. Both MINIO_ROOT_USER and MINIO_ROOT_PASSWORD environment must be set" fi if [[ -z "${MINIO_DISTRIBUTED_NODES:-}" ]]; then print_validation_error "Distributed mode is enabled. Nodes must be indicated setting the environment variable MINIO_DISTRIBUTED_NODES" @@ -301,12 +254,12 @@ minio_create_default_buckets() { ######################### minio_regenerate_keys() { local error_code=0 - if is_boolean_yes "$MINIO_FORCE_NEW_KEYS" && [[ -f "${MINIO_DATADIR}/.access_key" ]] && [[ -f "${MINIO_DATADIR}/.secret_key" ]]; then - MINIO_ACCESS_KEY_OLD="$(cat "${MINIO_DATADIR}/.access_key")" - MINIO_SECRET_KEY_OLD="$(cat "${MINIO_DATADIR}/.secret_key")" - if [[ "$MINIO_ACCESS_KEY_OLD" != "$MINIO_ACCESS_KEY" ]] || [[ "$MINIO_SECRET_KEY_OLD" != "$MINIO_SECRET_KEY" ]]; then + if is_boolean_yes "$MINIO_FORCE_NEW_KEYS" && [[ -f "${MINIO_DATA_DIR}/.root_user" ]] && [[ -f "${MINIO_DATADIR}/.root_password" ]]; then + MINIO_ROOT_USER_OLD="$(cat "${MINIO_DATA_DIR}/.root_user")" + MINIO_ROOT_PASSWORD_OLD="$(cat "${MINIO_DATA_DIR}/.root_password")" + if [[ "$MINIO_ROOT_USER_OLD" != "$MINIO_ROOT_USER" ]] || [[ "$MINIO_ROOT_PASSWORD_OLD" != "$MINIO_ROOT_PASSWORD" ]]; then info "Reconfiguring MinIO credentials..." - export MINIO_ACCESS_KEY_OLD MINIO_SECRET_KEY_OLD + export MINIO_ROOT_USER_OLD MINIO_ROOT_PASSWORD_OLD # Restart MinIO to reconfigure credentials # ref: https://docs.min.io/docs/minio-server-configuration-guide.html minio_start_bg @@ -314,9 +267,9 @@ minio_regenerate_keys() { error_code=1 fi fi - echo "$MINIO_ACCESS_KEY" > "${MINIO_DATADIR}/.access_key" - echo "$MINIO_SECRET_KEY" > "${MINIO_DATADIR}/.secret_key" - chmod 600 "${MINIO_DATADIR}/.secret_key" "${MINIO_DATADIR}/.access_key" + echo "$MINIO_ROOT_USER" > "${MINIO_DATA_DIR}/.root_user" + echo "$MINIO_ROOT_PASSWORD" > "${MINIO_DATA_DIR}/.root_password" + chmod 600 "${MINIO_DATA_DIR}/.root_user" "${MINIO_DATA_DIR}/.root_password" [[ "$error_code" -eq 0 ]] || exit "$error_code" } diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/libminioclient.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/libminioclient.sh index 090d0d1299b0..c9f84f3729f6 100644 --- a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/libminioclient.sh +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/libminioclient.sh @@ -4,32 +4,10 @@ # Functions -######################## -# Load global variables used on MinIO Client configuration -# Globals: -# MINIO_CLIENT_* -# Arguments: -# None -# Returns: -# Series of exports to be used as 'eval' arguments -######################### -minio_client_env() { - cat <<"EOF" -export MINIO_CLIENT_BASEDIR="/opt/bitnami/minio-client" -export MINIO_CLIENT_CONFIGDIR="/.mc" -export MINIO_SERVER_HOST="${MINIO_SERVER_HOST:-}" -export MINIO_SERVER_PORT_NUMBER="${MINIO_SERVER_PORT_NUMBER:-9000}" -export MINIO_SERVER_SCHEME="${MINIO_SERVER_SCHEME:-http}" -export MINIO_SERVER_ACCESS_KEY="${MINIO_SERVER_ACCESS_KEY:-}" -export MINIO_SERVER_SECRET_KEY="${MINIO_SERVER_SECRET_KEY:-}" -export PATH="${MINIO_CLIENT_BASEDIR}/bin:$PATH" -EOF -} - ######################## # Check if a bucket already exists # Globals: -# MINIO_CLIENT_CONFIGDIR +# MINIO_CLIENT_CONF_DIR # Arguments: # $1 - Bucket name # Returns: @@ -46,13 +24,13 @@ minio_client_bucket_exists() { ######################## # Execute an arbitrary MinIO client command # Globals: -# MINIO_CLIENT_CONFIGDIR +# MINIO_CLIENT_CONF_DIR # Arguments: # $@ - Command to execute # Returns: # None minio_client_execute() { - local -r args=("--config-dir" "${MINIO_CLIENT_CONFIGDIR}" "--quiet" "$@") + local -r args=("--config-dir" "${MINIO_CLIENT_CONF_DIR}" "--quiet" "$@") local exec exec=$(command -v mc) @@ -62,13 +40,13 @@ minio_client_execute() { ######################## # Execute an arbitrary MinIO client command with a 2s timeout # Globals: -# MINIO_CLIENT_CONFIGDIR +# MINIO_CLIENT_CONF_DIR # Arguments: # $@ - Command to execute # Returns: # None minio_client_execute_timeout() { - local -r args=("--config-dir" "${MINIO_CLIENT_CONFIGDIR}" "--quiet" "$@") + local -r args=("--config-dir" "${MINIO_CLIENT_CONF_DIR}" "--quiet" "$@") local exec exec=$(command -v mc) @@ -85,9 +63,9 @@ minio_client_execute_timeout() { # Series of exports to be used as 'eval' arguments ######################### minio_client_configure_server() { - if [[ -n "$MINIO_SERVER_HOST" ]] && [[ -n "$MINIO_SERVER_ACCESS_KEY" ]] && [[ -n "$MINIO_SERVER_SECRET_KEY" ]]; then + if [[ -n "$MINIO_SERVER_HOST" ]] && [[ -n "$MINIO_SERVER_ROOT_USER" ]] && [[ -n "$MINIO_SERVER_ROOT_PASSWORD" ]]; then info "Adding Minio host to 'mc' configuration..." - minio_client_execute config host add minio "${MINIO_SERVER_SCHEME}://${MINIO_SERVER_HOST}:${MINIO_SERVER_PORT_NUMBER}" "${MINIO_SERVER_ACCESS_KEY}" "${MINIO_SERVER_SECRET_KEY}" + minio_client_execute config host add minio "${MINIO_SERVER_SCHEME}://${MINIO_SERVER_HOST}:${MINIO_SERVER_PORT_NUMBER}" "${MINIO_SERVER_ROOT_USER}" "${MINIO_SERVER_ROOT_PASSWORD}" fi } @@ -100,5 +78,5 @@ minio_client_configure_server() { ######################### minio_client_configure_local() { info "Adding local Minio host to 'mc' configuration..." - minio_client_execute config host add local "${MINIO_SERVER_SCHEME}://localhost:${MINIO_SERVER_PORT_NUMBER}" "${MINIO_SERVER_ACCESS_KEY}" "${MINIO_SERVER_SECRET_KEY}" >/dev/null 2>&1 + minio_client_execute config host add local "${MINIO_SERVER_SCHEME}://localhost:${MINIO_SERVER_PORT_NUMBER}" "${MINIO_SERVER_ROOT_USER}" "${MINIO_SERVER_ROOT_PASSWORD}" >/dev/null 2>&1 } diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client-env.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client-env.sh new file mode 100644 index 000000000000..3fa5e4e5ae5f --- /dev/null +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client-env.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# +# Environment configuration for minio-client + +# The values for all environment variables will be set in the below order of precedence +# 1. Custom environment variables defined below after Bitnami defaults +# 2. Constants defined in this file (environment variables with no default), i.e. BITNAMI_ROOT_DIR +# 3. Environment variables overridden via external files using *_FILE variables (see below) +# 4. Environment variables set externally (i.e. current Bash context/Dockerfile/userdata) + +# Load logging library +. /opt/bitnami/scripts/liblog.sh + +export BITNAMI_ROOT_DIR="/opt/bitnami" +export BITNAMI_VOLUME_DIR="/bitnami" + +# Logging configuration +export MODULE="${MODULE:-minio-client}" +export BITNAMI_DEBUG="${BITNAMI_DEBUG:-false}" + +# By setting an environment variable matching *_FILE to a file path, the prefixed environment +# variable will be overridden with the value specified in that file +minio_client_env_vars=( + MINIO_SERVER_HOST + MINIO_SERVER_PORT_NUMBER + MINIO_SERVER_SCHEME + MINIO_SERVER_ROOT_USER + MINIO_SERVER_ROOT_PASSWORD + MINIO_CLIENT_ACCESS_KEY + MINIO_CLIENT_SECRET_KEY +) +for env_var in "${minio_client_env_vars[@]}"; do + file_env_var="${env_var}_FILE" + if [[ -n "${!file_env_var:-}" ]]; then + if [[ -r "${!file_env_var:-}" ]]; then + export "${env_var}=$(< "${!file_env_var}")" + unset "${file_env_var}" + else + warn "Skipping export of '${env_var}'. '${!file_env_var:-}' is not readable." + fi + fi +done +unset minio_client_env_vars + +# Paths +export MINIO_CLIENT_BASE_DIR="${BITNAMI_ROOT_DIR}/minio-client" +export MINIO_CLIENT_BIN_DIR="${MINIO_CLIENT_BASE_DIR}/bin" +export MINIO_CLIENT_CONF_DIR="/.mc" +export PATH="${MINIO_CLIENT_BIN_DIR}:${PATH}" + +# MinIO Client configuration +export MINIO_SERVER_HOST="${MINIO_SERVER_HOST:-}" +export MINIO_SERVER_PORT_NUMBER="${MINIO_SERVER_PORT_NUMBER:-9000}" +export MINIO_SERVER_SCHEME="${MINIO_SERVER_SCHEME:-http}" + +# MinIO Client security +MINIO_SERVER_ROOT_USER="${MINIO_SERVER_ROOT_USER:-"${MINIO_CLIENT_ACCESS_KEY:-}"}" +export MINIO_SERVER_ROOT_USER="${MINIO_SERVER_ROOT_USER:-}" +MINIO_SERVER_ROOT_PASSWORD="${MINIO_SERVER_ROOT_PASSWORD:-"${MINIO_CLIENT_SECRET_KEY:-}"}" +export MINIO_SERVER_ROOT_PASSWORD="${MINIO_SERVER_ROOT_PASSWORD:-}" + +# Custom environment variables may be defined below diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/entrypoint.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/entrypoint.sh new file mode 100755 index 000000000000..d1f5e022fd6d --- /dev/null +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/entrypoint.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# shellcheck disable=SC1091 + +set -o errexit +set -o nounset +set -o pipefail +#set -o xtrace + +# Load libraries +. /opt/bitnami/scripts/libbitnami.sh +. /opt/bitnami/scripts/liblog.sh + +print_welcome_page + +info "** Starting MinIO Client setup **" +/opt/bitnami/scripts/minio-client/setup.sh +info "** MinIO Client setup finished! **" + +echo "" +exec "/opt/bitnami/scripts/minio-client/run.sh" "$@" diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/postunpack.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/postunpack.sh new file mode 100755 index 000000000000..d494d400aa7f --- /dev/null +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/postunpack.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# shellcheck disable=SC1091 + +# Load libraries +. /opt/bitnami/scripts/libfs.sh +. /opt/bitnami/scripts/libminioclient.sh + +# Load MinIO Client environment +. /opt/bitnami/scripts/minio-client-env.sh + +for dir in "$MINIO_CLIENT_BASE_DIR" "$MINIO_CLIENT_CONF_DIR"; do + ensure_dir_exists "$dir" +done +chmod -R g+rwX "$MINIO_CLIENT_BASE_DIR" "$MINIO_CLIENT_CONF_DIR" diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/run.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/run.sh new file mode 100755 index 000000000000..f149715b30c7 --- /dev/null +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/run.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# shellcheck disable=SC1091 + +set -o errexit +set -o nounset +set -o pipefail +#set -o xtrace + +# Load libraries +. /opt/bitnami/scripts/liblog.sh +. /opt/bitnami/scripts/libos.sh +. /opt/bitnami/scripts/libminioclient.sh + +# Load MinIO Client environment +. /opt/bitnami/scripts/minio-client-env.sh + +# Constants +EXEC=$(command -v mc) +ARGS=("--config-dir" "${MINIO_CLIENT_CONF_DIR}" "$@") + +if am_i_root; then + exec gosu "${MINIO_CLIENT_DAEMON_USER}" "${EXEC}" "${ARGS[@]}" +else + exec "${EXEC}" "${ARGS[@]}" +fi diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/setup.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/setup.sh new file mode 100755 index 000000000000..7e51332298e5 --- /dev/null +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-client/setup.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# shellcheck disable=SC1091 + +set -o errexit +set -o nounset +set -o pipefail +#set -o xtrace + +# Load libraries +. /opt/bitnami/scripts/liblog.sh +. /opt/bitnami/scripts/libnet.sh +. /opt/bitnami/scripts/libminioclient.sh + +# Load MinIO Client environment +. /opt/bitnami/scripts/minio-client-env.sh + +# Configure MinIO Client to use a MinIO server +minio_client_configure_server diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-env.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-env.sh new file mode 100644 index 000000000000..40a0d7e3a78e --- /dev/null +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-env.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# +# Environment configuration for minio + +# The values for all environment variables will be set in the below order of precedence +# 1. Custom environment variables defined below after Bitnami defaults +# 2. Constants defined in this file (environment variables with no default), i.e. BITNAMI_ROOT_DIR +# 3. Environment variables overridden via external files using *_FILE variables (see below) +# 4. Environment variables set externally (i.e. current Bash context/Dockerfile/userdata) + +# Load logging library +. /opt/bitnami/scripts/liblog.sh + +export BITNAMI_ROOT_DIR="/opt/bitnami" +export BITNAMI_VOLUME_DIR="/bitnami" + +# Logging configuration +export MODULE="${MODULE:-minio}" +export BITNAMI_DEBUG="${BITNAMI_DEBUG:-false}" + +# By setting an environment variable matching *_FILE to a file path, the prefixed environment +# variable will be overridden with the value specified in that file +minio_env_vars=( + MINIO_API_PORT_NUMBER + MINIO_CONSOLE_PORT_NUMBER + MINIO_SCHEME + MINIO_SKIP_CLIENT + MINIO_DISTRIBUTED_MODE_ENABLED + MINIO_DEFAULT_BUCKETS + MINIO_FORCE_NEW_KEYS + MINIO_ROOT_USER + MINIO_ROOT_PASSWORD + MINIO_ACCESS_KEY + MINIO_SECRET_KEY +) +for env_var in "${minio_env_vars[@]}"; do + file_env_var="${env_var}_FILE" + if [[ -n "${!file_env_var:-}" ]]; then + if [[ -r "${!file_env_var:-}" ]]; then + export "${env_var}=$(< "${!file_env_var}")" + unset "${file_env_var}" + else + warn "Skipping export of '${env_var}'. '${!file_env_var:-}' is not readable." + fi + fi +done +unset minio_env_vars + +# Paths +export MINIO_BASE_DIR="${BITNAMI_ROOT_DIR}/minio" +export MINIO_BIN_DIR="${MINIO_BASE_DIR}/bin" +export MINIO_CERTS_DIR="/certs" +export MINIO_LOGS_DIR="${MINIO_BASE_DIR}/log" +export MINIO_SECRETS_DIR="${MINIO_BASE_DIR}/secrets" +export MINIO_DATA_DIR="/data" +export PATH="${MINIO_BIN_DIR}:${PATH}" + +# System users (when running with a privileged user) +export MINIO_DAEMON_USER="minio" +export MINIO_DAEMON_GROUP="minio" + +# MinIO configuration +export MINIO_API_PORT_NUMBER="${MINIO_API_PORT_NUMBER:-9000}" +export MINIO_CONSOLE_PORT_NUMBER="${MINIO_CONSOLE_PORT_NUMBER:-9001}" +export MINIO_SCHEME="${MINIO_SCHEME:-http}" +export MINIO_SKIP_CLIENT="${MINIO_SKIP_CLIENT:-no}" +export MINIO_DISTRIBUTED_MODE_ENABLED="${MINIO_DISTRIBUTED_MODE_ENABLED:-no}" +export MINIO_DEFAULT_BUCKETS="${MINIO_DEFAULT_BUCKETS:-}" + +# MinIO security +export MINIO_FORCE_NEW_KEYS="${MINIO_FORCE_NEW_KEYS:-no}" +MINIO_ROOT_USER="${MINIO_ROOT_USER:-"${MINIO_ACCESS_KEY:-}"}" +export MINIO_ROOT_USER="${MINIO_ROOT_USER:-minio}" +MINIO_ROOT_PASSWORD="${MINIO_ROOT_PASSWORD:-"${MINIO_SECRET_KEY:-}"}" +export MINIO_ROOT_PASSWORD="${MINIO_ROOT_PASSWORD:-miniosecret}" + +# Custom environment variables may be defined below diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/entrypoint.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/entrypoint.sh index f6866c78bc18..e9f43be38a3a 100755 --- a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/entrypoint.sh +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/entrypoint.sh @@ -9,6 +9,7 @@ set -o pipefail # Load libraries . /opt/bitnami/scripts/libbitnami.sh +. /opt/bitnami/scripts/liblog.sh print_welcome_page diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/postunpack.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/postunpack.sh index f3aadf0b5443..6d3785d0e0c2 100755 --- a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/postunpack.sh +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/postunpack.sh @@ -6,21 +6,14 @@ . /opt/bitnami/scripts/libfs.sh . /opt/bitnami/scripts/libminio.sh -# Load MinIO environment variables -eval "$(minio_env)" +# Load MinIO environment +. /opt/bitnami/scripts/minio-env.sh # Ensure non-root user has write permissions on a set of directories -for dir in "$MINIO_DATADIR" "$MINIO_CERTSDIR" "$MINIO_LOGDIR" "$MINIO_SECRETSDIR"; do +for dir in "$MINIO_DATA_DIR" "$MINIO_CERTS_DIR" "$MINIO_LOGS_DIR" "$MINIO_SECRETS_DIR"; do ensure_dir_exists "$dir" done +chmod -R g+rwX "$MINIO_DATA_DIR" "$MINIO_CERTS_DIR" "$MINIO_LOGS_DIR" "$MINIO_SECRETS_DIR" + # Redirect all logging to stdout/stderr -ln -sf /dev/stdout "$MINIO_LOGDIR/minio-http.log" -chmod -R g+rwX "$MINIO_DATADIR" "$MINIO_CERTSDIR" "$MINIO_LOGDIR" "$MINIO_SECRETSDIR" - -# Load MinIO Client environment variables -eval "$(minio_client_env)" - -for dir in "$MINIO_CLIENT_BASEDIR" "$MINIO_CLIENT_CONFIGDIR"; do - ensure_dir_exists "$dir" -done -chmod -R g+rwX "$MINIO_CLIENT_BASEDIR" "$MINIO_CLIENT_CONFIGDIR" +ln -sf /dev/stdout "$MINIO_LOGS_DIR/minio-http.log" diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/run.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/run.sh index ad2c7543958c..6848f2af3b99 100755 --- a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/run.sh +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/run.sh @@ -12,12 +12,12 @@ set -o pipefail . /opt/bitnami/scripts/libos.sh . /opt/bitnami/scripts/libminio.sh -# Load MinIO environment variables -eval "$(minio_env)" +# Load MinIO environment +. /opt/bitnami/scripts/minio-env.sh # Constants EXEC=$(command -v minio) -ARGS=("server" "--certs-dir" "${MINIO_CERTSDIR}" "--console-address" ":${MINIO_CONSOLE_PORT_NUMBER}") +ARGS=("server" "--certs-dir" "${MINIO_CERTS_DIR}" "--console-address" ":${MINIO_CONSOLE_PORT_NUMBER}") # Add any extra flags passed to this script ARGS+=("$@") if is_boolean_yes "$MINIO_DISTRIBUTED_MODE_ENABLED"; then @@ -26,11 +26,11 @@ if is_boolean_yes "$MINIO_DISTRIBUTED_MODE_ENABLED"; then if is_distributed_ellipses_syntax; then ARGS+=("${MINIO_SCHEME}://${node}") else - ARGS+=("${MINIO_SCHEME}://${node}:${MINIO_API_PORT_NUMBER}/${MINIO_DATADIR}") + ARGS+=("${MINIO_SCHEME}://${node}:${MINIO_API_PORT_NUMBER}/${MINIO_DATA_DIR}") fi done else - ARGS+=("${MINIO_DATADIR}") + ARGS+=("${MINIO_DATA_DIR}") fi info "** Starting MinIO **" diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/setup.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/setup.sh index 07a3aa9543c1..e0c907dc051a 100755 --- a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/setup.sh +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio/setup.sh @@ -11,25 +11,29 @@ set -o pipefail . /opt/bitnami/scripts/liblog.sh . /opt/bitnami/scripts/libminio.sh -# Load MinIO environment variables -eval "$(minio_env)" +# Load MinIO environment +. /opt/bitnami/scripts/minio-env.sh + export MINIO_SERVER_PORT_NUMBER="$MINIO_API_PORT_NUMBER" export MINIO_SERVER_SCHEME="$MINIO_SCHEME" -export MINIO_SERVER_ACCESS_KEY="${MINIO_ACCESS_KEY:-}" -export MINIO_SERVER_SECRET_KEY="${MINIO_SECRET_KEY:-}" -# Load MinIO Client environment variables -eval "$(minio_client_env)" +export MINIO_SERVER_ROOT_USER="${MINIO_ROOT_USER:-}" +export MINIO_SERVER_ROOT_PASSWORD="${MINIO_ROOT_PASSWORD:-}" + +# Load MinIO Client environment +. /opt/bitnami/scripts/minio-client-env.sh # Validate settings in MINIO_* env vars. minio_validate + # Keys regeneration minio_regenerate_keys + if is_boolean_yes "$MINIO_SKIP_CLIENT"; then debug "Skipping MinIO client configuration..." else - if [ "$MINIO_SERVER_SCHEME" == "https" ]; then - [ ! -d "${MINIO_CLIENT_CONFIGDIR}/certs/CAs" ] && mkdir -p "${MINIO_CLIENT_CONFIGDIR}/certs/CAs" - cp "${MINIO_CERTSDIR}/CAs/public.crt" "${MINIO_CLIENT_CONFIGDIR}/certs/CAs/" + if [[ "$MINIO_SERVER_SCHEME" = "https" ]]; then + [[ ! -d "${MINIO_CLIENT_CONFIG_DIR}/certs/CAs" ]] && mkdir -p "${MINIO_CLIENT_CONFIG_DIR}/certs/CAs" + cp "${MINIO_CERTS_DIR}/CAs/public.crt" "${MINIO_CLIENT_CONFIG_DIR}/certs/CAs/" fi # Start MinIO server in background minio_start_bg @@ -40,12 +44,12 @@ else read -r -a drives <<< "$(minio_distributed_drives)" minio_client_configure_local "/${drives[0]}/.minio.sys/config/config.json" else - minio_client_configure_local "${MINIO_DATADIR}/.minio.sys/config/config.json" + minio_client_configure_local "${MINIO_DATA_DIR}/.minio.sys/config/config.json" fi # Wait for other clients (distribute mode) sleep 5 else - minio_client_configure_local "${MINIO_DATADIR}/.minio.sys/config/config.json" + minio_client_configure_local "${MINIO_DATA_DIR}/.minio.sys/config/config.json" fi # Create default buckets minio_create_default_buckets diff --git a/bitnami/minio/README.md b/bitnami/minio/README.md index 27561c36e3d4..1b8cccae9545 100644 --- a/bitnami/minio/README.md +++ b/bitnami/minio/README.md @@ -1,4 +1,6 @@ -# What is Bitnami Object Storage based on MinIO(R)? +# Bitnami Docker Image for MinIO(R) + +## What is Bitnami Object Storage based on MinIO(R)? > This software listing is packaged and published by Bitnami. MinIO(R) is an object storage server, compatible with Amazon S3 cloud storage service, mainly used for storing unstructured data (such as photos, videos, log files, etc.). @@ -45,7 +47,7 @@ Non-root container images add an extra layer of security and are generally recom Learn more about the Bitnami tagging policy and the difference between rolling tags and immutable tags [in our documentation page](https://docs.bitnami.com/tutorials/understand-rolling-tags-containers/). -* [`2021`, `2021-debian-10`, `2021.10.13`, `2021.10.13-debian-10-r0`, `latest` (2021/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-minio/blob/2021.10.13-debian-10-r0/2021/debian-10/Dockerfile) +* [`2021`, `2021-debian-10`, `2021.10.13`, `2021.10.13-debian-10-r1`, `latest` (2021/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-minio/blob/2021.10.13-debian-10-r1/2021/debian-10/Dockerfile) Subscribe to project updates by watching the [bitnami/minio GitHub repo](https://github.com/bitnami/bitnami-docker-minio). @@ -118,8 +120,8 @@ Use the `--network app-tier` argument to the `docker run` command to attach the ```console $ docker run -d --name minio-server \ - --env MINIO_ACCESS_KEY="minio-access-key" \ - --env MINIO_SECRET_KEY="minio-secret-key" \ + --env MINIO_ROOT_USER="minio-root-user" \ + --env MINIO_ROOT_PASSWORD="minio-root-password" \ --network app-tier \ bitnami/minio:latest ``` @@ -131,8 +133,8 @@ Finally we create a new container instance to launch the MinIO(R) client and con ```console $ docker run -it --rm --name minio-client \ --env MINIO_SERVER_HOST="minio" \ - --env MINIO_SERVER_ACCESS_KEY="minio-access-key" \ - --env MINIO_SERVER_SECRET_KEY="minio-secret-key" \ + --env MINIO_SERVER_ROOT_USER="minio-root-user" \ + --env MINIO_SERVER_ROOT_PASSWORD="minio-root-password" \ --network app-tier \ bitnami/minio-client \ mb minio/my-bucket @@ -156,8 +158,8 @@ services: - '9000:9000' - '9001:9001' environment: - - MINIO_ACCESS_KEY=minio-access-key - - MINIO_SECRET_KEY=minio-secret-key + - MINIO_ROOT_USER=minio-root-user + - MINIO_ROOT_PASSWORD=minio-root-password networks: - app-tier myapp: @@ -165,14 +167,14 @@ services: networks: - app-tier environment: - - MINIO_SERVER_ACCESS_KEY=minio-access-key - - MINIO_SERVER_SECRET_KEY=minio-secret-key + - MINIO_SERVER_ROOT_USER=minio-root-user + - MINIO_SERVER_ROOT_PASSWORD=minio-root-password ``` > **IMPORTANT**: > > 1. Please update the **YOUR_APPLICATION_IMAGE_** placeholder in the above snippet with your application image -> 2. In your application container, use the hostname `minio` to connect to the MinIO(R) server. Use the environment variables `MINIO_SERVER_ACCESS_KEY` and `MINIO_SERVER_SECRET_KEY` to configure the credentials to access the MinIO(R) server. +> 2. In your application container, use the hostname `minio` to connect to the MinIO(R) server. Use the environment variables `MINIO_SERVER_ROOT_USER` and `MINIO_SERVER_ROOT_PASSWORD` to configure the credentials to access the MinIO(R) server. Launch the containers using: @@ -253,8 +255,8 @@ You can configure MinIO(R) in Distributed Mode to setup a highly-available stora * `MINIO_DISTRIBUTED_MODE_ENABLED`: Set it to 'yes' to enable Distributed Mode. * `MINIO_DISTRIBUTED_NODES`: List of MinIO(R) nodes hosts. Available separators are ' ', ',' and ';'. -* `MINIO_ACCESS_KEY`: MinIO(R) server Access Key. Must be common on every node. -* `MINIO_SECRET_KEY`: MinIO(R) server Secret Key. Must be common on every node. +* `MINIO_ROOT_USER`: MinIO(R) server root user name. Must be common on every node. +* `MINIO_ROOT_PASSWORD`: Password for MinIO(R) server root user. Must be common on every node. You can use the Docker Compose below to create an 4-node distributed MinIO(R) setup: @@ -265,32 +267,32 @@ services: minio1: image: 'bitnami/minio:latest' environment: - - MINIO_ACCESS_KEY=minio-access-key - - MINIO_SECRET_KEY=minio-secret-key + - MINIO_ROOT_USER=minio-root-user + - MINIO_ROOT_PASSWORD=minio-root-password - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=minio1,minio2,minio3,minio4 - MINIO_SKIP_CLIENT=yes minio2: image: 'bitnami/minio:latest' environment: - - MINIO_ACCESS_KEY=minio-access-key - - MINIO_SECRET_KEY=minio-secret-key + - MINIO_ROOT_USER=minio-root-user + - MINIO_ROOT_PASSWORD=minio-root-password - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=minio1,minio2,minio3,minio4 - MINIO_SKIP_CLIENT=yes minio3: image: 'bitnami/minio:latest' environment: - - MINIO_ACCESS_KEY=minio-access-key - - MINIO_SECRET_KEY=minio-secret-key + - MINIO_ROOT_USER=minio-root-user + - MINIO_ROOT_PASSWORD=minio-root-password - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=minio1,minio2,minio3,minio4 - MINIO_SKIP_CLIENT=yes minio4: image: 'bitnami/minio:latest' environment: - - MINIO_ACCESS_KEY=minio-access-key - - MINIO_SECRET_KEY=minio-secret-key + - MINIO_ROOT_USER=minio-root-user + - MINIO_ROOT_PASSWORD=minio-root-password - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=minio1,minio2,minio3,minio4 - MINIO_SKIP_CLIENT=yes @@ -307,8 +309,8 @@ services: - 'minio_0_data_0:/data-0' - 'minio_0_data_1:/data-1' environment: - - MINIO_ACCESS_KEY=minio - - MINIO_SECRET_KEY=miniosecret + - MINIO_ROOT_USER=minio + - MINIO_ROOT_PASSWORD=miniosecret - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=minio-{0...1}/data-{0...1} minio-1: @@ -317,8 +319,8 @@ services: - 'minio_1_data_0:/data-0' - 'minio_1_data_1:/data-1' environment: - - MINIO_ACCESS_KEY=minio - - MINIO_SECRET_KEY=miniosecret + - MINIO_ROOT_USER=minio + - MINIO_ROOT_PASSWORD=miniosecret - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=minio-{0...1}/data-{0...1} volumes: @@ -336,17 +338,17 @@ Find more information about the Distributed Mode in the [MinIO(R) documentation] ### Reconfiguring Keys on container restarts -MinIO(R) configures the access & secret key during the 1st initialization based on the `MINIO_ACCESS_KEY` and `MINIO_SECRET_KEY` environment variables, respetively. +MinIO(R) configures the root user & password during the 1st initialization based on the `MINIO_ROOT_USER` and `MINIO_ROOT_PASSWORD` environment variables, respetively. -When using persistence, MinIO(R) will reuse the data configured during the 1st initialization by default, ignoring whatever values are set on these environment variables. You can force MinIO(R) to reconfigure the keys based on the environment variables by setting the `MINIO_FORCE_NEW_KEYS` environment variable to `yes`: +When using persistence, MinIO(R) will reuse the data configured during the 1st initialization by default, ignoring whatever values are set on these environment variables. You can force MinIO(R) to reconfigure the credentials based on the environment variables by setting the `MINIO_FORCE_NEW_KEYS` environment variable to `yes`: ```console $ docker run --name minio \ --publish 9000:9000 \ --publish 9001:9001 \ --env MINIO_FORCE_NEW_KEYS="yes" \ - --env MINIO_ACCESS_KEY="new-minio-access-key" \ - --env MINIO_SECRET_KEY="new-minio-secret-key" \ + --env MINIO_ROOT_USER="new-minio-root-user" \ + --env MINIO_ROOT_PASSWORD="new-minio-root-pass" \ --volume /path/to/minio-persistence:/data \ bitnami/minio:latest ``` @@ -453,6 +455,12 @@ or using Docker Compose: $ docker-compose up minio ``` +## Notable Changes + +### 2021.10.6-debian-10-r2 + +- The `MINIO_ACCESS_KEY` and `MINIO_SECRET_KEY`, environment variables were deprecated in favor of `MINIO_ROOT_USER` and `MINIO_ROOT_PASSWORD`, respectively, so it's aligned with the [current terminology](https://docs.min.io/minio/baremetal/security/minio-identity-management/user-management.html#minio-users-root). + ## Contributing We'd love for you to contribute to this container. You can request new features by creating an [issue](https://github.com/bitnami/bitnami-docker-minio/issues), or submit a [pull request](https://github.com/bitnami/bitnami-docker-minio/pulls) with your contribution. diff --git a/bitnami/minio/docker-compose-distributed-multidrive.yml b/bitnami/minio/docker-compose-distributed-multidrive.yml index ab233a02b707..af04fac28143 100644 --- a/bitnami/minio/docker-compose-distributed-multidrive.yml +++ b/bitnami/minio/docker-compose-distributed-multidrive.yml @@ -19,8 +19,8 @@ services: - 'minio_0_data_0:/data-0' - 'minio_0_data_1:/data-1' environment: - - MINIO_ACCESS_KEY=minio - - MINIO_SECRET_KEY=miniosecret + - MINIO_ROOT_USER=minio + - MINIO_ROOT_PASSWORD=miniosecret - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=minio-{0...1}/data-{0...1} depends_on: @@ -31,8 +31,8 @@ services: - 'minio_1_data_0:/data-0' - 'minio_1_data_1:/data-1' environment: - - MINIO_ACCESS_KEY=minio - - MINIO_SECRET_KEY=miniosecret + - MINIO_ROOT_USER=minio + - MINIO_ROOT_PASSWORD=miniosecret - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=minio-{0...1}/data-{0...1} depends_on: diff --git a/bitnami/minio/docker-compose-distributed.yml b/bitnami/minio/docker-compose-distributed.yml index c8193f859d6c..bf2b9ce56e95 100644 --- a/bitnami/minio/docker-compose-distributed.yml +++ b/bitnami/minio/docker-compose-distributed.yml @@ -9,8 +9,8 @@ services: volumes: - 'minio_data:/data' environment: - - MINIO_ACCESS_KEY=minio - - MINIO_SECRET_KEY=miniosecret + - MINIO_ROOT_USER=minio + - MINIO_ROOT_PASSWORD=miniosecret - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=minio,minio2,minio3,minio4 minio2: @@ -18,8 +18,8 @@ services: volumes: - 'minio_2_data:/data' environment: - - MINIO_ACCESS_KEY=minio - - MINIO_SECRET_KEY=miniosecret + - MINIO_ROOT_USER=minio + - MINIO_ROOT_PASSWORD=miniosecret - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=minio,minio2,minio3,minio4 minio3: @@ -27,8 +27,8 @@ services: volumes: - 'minio_3_data:/data' environment: - - MINIO_ACCESS_KEY=minio - - MINIO_SECRET_KEY=miniosecret + - MINIO_ROOT_USER=minio + - MINIO_ROOT_PASSWORD=miniosecret - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=minio,minio2,minio3,minio4 minio4: @@ -36,8 +36,8 @@ services: volumes: - 'minio_4_data:/data' environment: - - MINIO_ACCESS_KEY=minio - - MINIO_SECRET_KEY=miniosecret + - MINIO_ROOT_USER=minio + - MINIO_ROOT_PASSWORD=miniosecret - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=minio,minio2,minio3,minio4