4.9.0-debian-10-r2 release

This commit is contained in:
Bitnami Bot
2021-10-28 19:26:07 +00:00
parent 19ee76c906
commit 7fc294e96f
11 changed files with 12 additions and 420 deletions

View File

@@ -14,12 +14,11 @@ RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "apache" "2.4.51-
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "redis-client" "6.0.16-1" --checksum 4098185d902ee5e264bf9ec86e27e51c59c966004750ad7bde30e16a0a5f9f3f
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "postgresql-client" "11.13.0-0" --checksum 1fc5072414ecbbd142a817ea8b0252904cbe17d34bd1c608a0b4865859458b0b
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "mysql-client" "10.4.21-2" --checksum 0ad1e1862ae23bd9aa0513d4cbe37ef6533f4a25ed140a6ae402f3e38bc6fef7
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "mongodb-client" "5.0.3-0" --checksum dc01abffb8ee5f9a4f420987f8e278028d3f6a261e78c8afa2ed430fdaab71d0
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "libphp" "7.4.25-0" --checksum 94230b4abfeff6424103c40676c7162330c338b03b4f1a77f07eba709e650e35
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "git" "2.33.0-0" --checksum fd9a3245580fef6248f778efeba0a017675424f15ff16ace42c095496e4f02f3
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "render-template" "1.0.0-3" --checksum 8179ad1371c9a7d897fe3b1bf53bbe763f94edafef19acad2498dd48b3674efe
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "gosu" "1.14.0-0" --checksum 3e6fc37ca073b10a73a804d39c2f0c028947a1a596382a4f8ebe43dfbaa3a25e
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "dreamfactory" "4.9.0-0" --checksum 2e1c1d058590d3af22d0bb75900a719ad5370b618779d119ebf43424d4415610
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "dreamfactory" "4.9.0-1" --checksum 69b9ae1f34406179d2eaaccefa14c19069db4309c3de2e52894eb0e111a08990
RUN chmod g+rwX /opt/bitnami
COPY rootfs /
@@ -34,7 +33,7 @@ ENV ALLOW_EMPTY_PASSWORD="no" \
APACHE_HTTPS_PORT_NUMBER="" \
APACHE_HTTP_PORT_NUMBER="" \
BITNAMI_APP_NAME="dreamfactory" \
BITNAMI_IMAGE_VERSION="4.9.0-debian-10-r1" \
BITNAMI_IMAGE_VERSION="4.9.0-debian-10-r2" \
MARIADB_HOST="mariadb" \
MARIADB_PORT_NUMBER="3306" \
MARIADB_ROOT_PASSWORD="" \
@@ -45,7 +44,7 @@ ENV ALLOW_EMPTY_PASSWORD="no" \
MYSQL_CLIENT_CREATE_DATABASE_USER="" \
MYSQL_CLIENT_ENABLE_SSL="no" \
MYSQL_CLIENT_SSL_CA_FILE="" \
PATH="/opt/bitnami/php/bin:/opt/bitnami/php/sbin:/opt/bitnami/apache/bin:/opt/bitnami/redis/bin:/opt/bitnami/postgresql/bin:/opt/bitnami/mysql/bin:/opt/bitnami/mongodb/bin:/opt/bitnami/git/bin:/opt/bitnami/common/bin:/opt/bitnami/dreamfactory/bin:$PATH" \
PATH="/opt/bitnami/php/bin:/opt/bitnami/php/sbin:/opt/bitnami/apache/bin:/opt/bitnami/redis/bin:/opt/bitnami/postgresql/bin:/opt/bitnami/mysql/bin:/opt/bitnami/git/bin:/opt/bitnami/common/bin:/opt/bitnami/dreamfactory/bin:$PATH" \
POSTGRESQL_CLIENT_CREATE_DATABASE_NAME="" \
POSTGRESQL_CLIENT_CREATE_DATABASE_PASSWORD="" \
POSTGRESQL_CLIENT_CREATE_DATABASE_USERNAME="" \

View File

@@ -8,10 +8,6 @@ services:
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=bn_dreamfactory
- MARIADB_DATABASE=bitnami_dreamfactory
mongodb:
image: docker.io/bitnami/mongodb:5.0
volumes:
- 'mongodb_data:/bitnami/mongodb'
redis:
image: docker.io/bitnami/redis:6.0
volumes:
@@ -28,7 +24,6 @@ services:
- 'dreamfactory_data:/bitnami/dreamfactory'
depends_on:
- mariadb
- mongodb
- redis
environment:
- ALLOW_EMPTY_PASSWORD=yes
@@ -46,20 +41,9 @@ services:
- MYSQL_CLIENT_DATABASE_PORT_NUMBER=3306
- MYSQL_CLIENT_CREATE_DATABASE_NAME=df
- MYSQL_CLIENT_CREATE_DATABASE_USER=df
# Enable MongoDB service for DreamFactory
- DREAMFACTORY_ENABLE_MONGODB_SERVICE=yes
- DREAMFACTORY_MONGODB_SERVICE_DATABASE_NAME=df
- DREAMFACTORY_MONGODB_SERVICE_DATABASE_USER=df
# Create MongoDB database for extra service
- MONGODB_CLIENT_DATABASE_HOST=mongodb
- MONGODB_CLIENT_DATABASE_PORT_NUMBER=27017
- MONGODB_CLIENT_CREATE_DATABASE_NAME=df
- MONGODB_CLIENT_CREATE_DATABASE_USERNAME=df
volumes:
mariadb_data:
driver: local
mongodb_data:
driver: local
redis_data:
driver: local
dreamfactory_data:

View File

@@ -8,10 +8,10 @@
},
"dreamfactory": {
"arch": "amd64",
"digest": "2e1c1d058590d3af22d0bb75900a719ad5370b618779d119ebf43424d4415610",
"digest": "69b9ae1f34406179d2eaaccefa14c19069db4309c3de2e52894eb0e111a08990",
"distro": "debian-10",
"type": "NAMI",
"version": "4.9.0-0"
"version": "4.9.0-1"
},
"git": {
"arch": "amd64",
@@ -34,13 +34,6 @@
"type": "NAMI",
"version": "7.4.25-0"
},
"mongodb-client": {
"arch": "amd64",
"digest": "dc01abffb8ee5f9a4f420987f8e278028d3f6a261e78c8afa2ed430fdaab71d0",
"distro": "debian-10",
"type": "NAMI",
"version": "5.0.3-0"
},
"mysql-client": {
"arch": "amd64",
"digest": "0ad1e1862ae23bd9aa0513d4cbe37ef6533f4a25ed140a6ae402f3e38bc6fef7",

View File

@@ -52,12 +52,6 @@ dreamfactory_env_vars=(
DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_NAME
DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_USER
DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_PASSWORD
DREAMFACTORY_ENABLE_MONGODB_SERVICE
DREAMFACTORY_MONGODB_SERVICE_HOST
DREAMFACTORY_MONGODB_SERVICE_PORT_NUMBER
DREAMFACTORY_MONGODB_SERVICE_DATABASE_NAME
DREAMFACTORY_MONGODB_SERVICE_DATABASE_USER
DREAMFACTORY_MONGODB_SERVICE_DATABASE_PASSWORD
DREAMFACTORY_ENABLE_REDIS
DREAMFACTORY_REDIS_HOST
DREAMFACTORY_REDIS_PORT_NUMBER
@@ -78,11 +72,6 @@ dreamfactory_env_vars=(
POSTGRESQL_PORT_NUMBER
POSTGRESQL_USER
POSTGRESQL_PASSWORD
DREAMFACTORY_ENABLE_MONGODB_DATABASE
MONGODB_HOST
MONGODB_PORT_NUMBER
MONGODB_USER
MONGODB_PASSWORD
REDIS_HOST
REDIS_PORT_NUMBER
REDIS_PASSWORD
@@ -164,19 +153,6 @@ export DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_USER="${DREAMFACTORY_POSTGRESQL_
DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_PASSWORD="${DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_PASSWORD:-"${POSTGRESQL_PASSWORD:-}"}"
export DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_PASSWORD="${DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_PASSWORD:-}"
# Extra MongoDB® database service configuration
DREAMFACTORY_ENABLE_MONGODB_SERVICE="${DREAMFACTORY_ENABLE_MONGODB_SERVICE:-"${DREAMFACTORY_ENABLE_MONGODB_DATABASE:-}"}"
export DREAMFACTORY_ENABLE_MONGODB_SERVICE="${DREAMFACTORY_ENABLE_MONGODB_SERVICE:-no}"
DREAMFACTORY_MONGODB_SERVICE_HOST="${DREAMFACTORY_MONGODB_SERVICE_HOST:-"${MONGODB_HOST:-}"}"
export DREAMFACTORY_MONGODB_SERVICE_HOST="${DREAMFACTORY_MONGODB_SERVICE_HOST:-mongodb}"
DREAMFACTORY_MONGODB_SERVICE_PORT_NUMBER="${DREAMFACTORY_MONGODB_SERVICE_PORT_NUMBER:-"${MONGODB_PORT_NUMBER:-}"}"
export DREAMFACTORY_MONGODB_SERVICE_PORT_NUMBER="${DREAMFACTORY_MONGODB_SERVICE_PORT_NUMBER:-27017}"
export DREAMFACTORY_MONGODB_SERVICE_DATABASE_NAME="${DREAMFACTORY_MONGODB_SERVICE_DATABASE_NAME:-df}"
DREAMFACTORY_MONGODB_SERVICE_DATABASE_USER="${DREAMFACTORY_MONGODB_SERVICE_DATABASE_USER:-"${MONGODB_USER:-}"}"
export DREAMFACTORY_MONGODB_SERVICE_DATABASE_USER="${DREAMFACTORY_MONGODB_SERVICE_DATABASE_USER:-}"
DREAMFACTORY_MONGODB_SERVICE_DATABASE_PASSWORD="${DREAMFACTORY_MONGODB_SERVICE_DATABASE_PASSWORD:-"${MONGODB_PASSWORD:-}"}"
export DREAMFACTORY_MONGODB_SERVICE_DATABASE_PASSWORD="${DREAMFACTORY_MONGODB_SERVICE_DATABASE_PASSWORD:-}"
# Redis(TM) configuration
export DREAMFACTORY_ENABLE_REDIS="${DREAMFACTORY_ENABLE_REDIS:-yes}"
DREAMFACTORY_REDIS_HOST="${DREAMFACTORY_REDIS_HOST:-"${REDIS_HOST:-}"}"

View File

@@ -29,13 +29,6 @@ elif [[ -f /opt/bitnami/scripts/libpostgresql.sh ]]; then
. /opt/bitnami/scripts/postgresql-env.sh
fi
# Load MongoDB Client environment for 'mongodb_execute' (after 'dreamfactory-env.sh' so that MODULE is not set to a wrong value)
if [[ -f /opt/bitnami/scripts/libmongodbclient.sh ]]; then
. /opt/bitnami/scripts/mongodb-client-env.sh
elif [[ -f /opt/bitnami/scripts/libmongodb.sh ]]; then
. /opt/bitnami/scripts/mongodb-env.sh
fi
# Load libraries
. /opt/bitnami/scripts/libdreamfactory.sh
. /opt/bitnami/scripts/libwebserver.sh

View File

@@ -31,13 +31,6 @@ elif [[ -f /opt/bitnami/scripts/libpostgresql.sh ]]; then
. /opt/bitnami/scripts/libpostgresql.sh
fi
# Load MongoDB database library
if [[ -f /opt/bitnami/scripts/libmongodbclient.sh ]]; then
. /opt/bitnami/scripts/libmongodbclient.sh
elif [[ -f /opt/bitnami/scripts/libmongodb.sh ]]; then
. /opt/bitnami/scripts/libmongodb.sh
fi
########################
# Validate settings in DREAMFACTORY_* env vars
# Globals:
@@ -106,10 +99,6 @@ dreamfactory_validate() {
check_resolved_hostname "$DREAMFACTORY_POSTGRESQL_SERVICE_HOST"
check_valid_port "DREAMFACTORY_POSTGRESQL_SERVICE_PORT_NUMBER"
fi
if is_boolean_yes "$DREAMFACTORY_ENABLE_MONGODB_SERVICE"; then
check_resolved_hostname "$DREAMFACTORY_MONGODB_SERVICE_HOST"
check_valid_port "DREAMFACTORY_MONGODB_SERVICE_PORT_NUMBER"
fi
if is_boolean_yes "$DREAMFACTORY_ENABLE_REDIS"; then
check_resolved_hostname "$DREAMFACTORY_REDIS_HOST"
check_valid_port "DREAMFACTORY_REDIS_PORT_NUMBER"
@@ -125,7 +114,6 @@ dreamfactory_validate() {
check_empty_password "DREAMFACTORY_DATABASE_PASSWORD"
is_boolean_yes "$DREAMFACTORY_ENABLE_MARIADB_SERVICE" && check_empty_password "DREAMFACTORY_MARIADB_SERVICE_DATABASE_PASSWORD"
is_boolean_yes "$DREAMFACTORY_ENABLE_POSTGRESQL_SERVICE" && check_empty_password "DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_PASSWORD"
is_boolean_yes "$DREAMFACTORY_ENABLE_MONGODB_SERVICE" && check_empty_password "DREAMFACTORY_MONGODB_SERVICE_DATABASE_PASSWORD"
is_boolean_yes "$DREAMFACTORY_ENABLE_REDIS" && check_empty_password "DREAMFACTORY_REDIS_PASSWORD"
fi
@@ -183,11 +171,6 @@ dreamfactory_initialize() {
info "Trying to connect to the PostgreSQL database service"
dreamfactory_wait_for_postgresql_connection "$DREAMFACTORY_POSTGRESQL_SERVICE_HOST" "$DREAMFACTORY_POSTGRESQL_SERVICE_PORT_NUMBER" "$DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_USER" "$DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_PASSWORD" "$DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_NAME"
fi
if is_boolean_yes "$DREAMFACTORY_ENABLE_MONGODB_SERVICE"; then
# Note: MongoDB is not supported as a configuration database for DreamFactory
info "Trying to connect to the extra MongoDB database service"
dreamfactory_wait_for_mongodb_connection "$DREAMFACTORY_MONGODB_SERVICE_HOST" "$DREAMFACTORY_MONGODB_SERVICE_PORT_NUMBER" "$DREAMFACTORY_MONGODB_SERVICE_DATABASE_USER" "$DREAMFACTORY_MONGODB_SERVICE_DATABASE_PASSWORD" "$DREAMFACTORY_MONGODB_SERVICE_DATABASE_NAME"
fi
# Connect to the optional cache services
if is_boolean_yes "$DREAMFACTORY_ENABLE_REDIS"; then
@@ -299,10 +282,6 @@ EOF
dreamfactory_add_service --name "postgresql" --type "pgsql" --label "PostgreSQL Database" --description "A PostgreSQL database service."
fi
if is_boolean_yes "$DREAMFACTORY_ENABLE_MONGODB_SERVICE"; then
info "Adding MongoDB service"
dreamfactory_add_service --name "mongodb" --type "mongodb" --label "MongoDB Database" --description "A MongoDB database service."
fi
else
info "An already initialized DreamFactory database was provided, configuration will be skipped"
info "Running database migrations"
@@ -482,13 +461,6 @@ dreamfactory_add_service() {
"${config_prefix}.password=\"${DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_PASSWORD}\""
)
;;
mongodb)
service_config+=(
"${config_prefix}.dsn=\"mongodb://${DREAMFACTORY_MONGODB_SERVICE_HOST}:${DREAMFACTORY_MONGODB_SERVICE_PORT_NUMBER}/${DREAMFACTORY_MONGODB_SERVICE_DATABASE_NAME}\""
"${config_prefix}.options.username=\"${DREAMFACTORY_MONGODB_SERVICE_DATABASE_USER}\""
"${config_prefix}.options.password=\"${DREAMFACTORY_MONGODB_SERVICE_DATABASE_PASSWORD}\""
)
;;
*)
error "Unsupported service type '${type}'"
return 1
@@ -561,37 +533,6 @@ discourse_wait_for_postgresql_connection() {
fi
}
########################
# Wait until the database is accessible with the currently-known credentials
# Globals:
# *
# Arguments:
# $1 - database host
# $2 - database port
# $3 - database username
# $4 - database user password (optional)
# $5 - database name (optional)
# Returns:
# true if the database connection succeeded, false otherwise
#########################
dreamfactory_wait_for_mongodb_connection() {
local -r db_host="${1:?missing database host}"
local -r db_port="${2:?missing database port}"
local -r db_user="${3:?missing database user}"
local -r db_pass="${4:-}"
local -r db_name="${5:-}"
check_mongodb_connection() {
local res
res="$(mongodb_execute "$db_user" "$db_pass" "$db_name" "$db_host" "$db_port" <<< "db.stats();")"
debug "$res"
echo "$res" | grep -q '"ok" : 1'
}
if ! retry_while "check_mongodb_connection"; then
error "Could not connect to the database"
return 1
fi
}
########################
# Wait until Redis is accessible
# Globals:

View File

@@ -1,132 +0,0 @@
#!/bin/bash
#
# Bitnami MongoDB Client library
# shellcheck disable=SC1091
# Load Generic Libraries
. /opt/bitnami/scripts/liblog.sh
. /opt/bitnami/scripts/libos.sh
. /opt/bitnami/scripts/libvalidations.sh
########################
# Validate settings in MONGODB_CLIENT_* environment variables
# Globals:
# MONGODB_CLIENT_*
# Arguments:
# None
# Returns:
# None
#########################
mongodb_client_validate() {
info "Validating settings in MONGODB_CLIENT_* 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."
}
# Only validate environment variables if any action needs to be performed
# We need that the both the database and the password must be set
if [[ -n "$MONGODB_CLIENT_CREATE_DATABASE_USERNAME" || -n "$MONGODB_CLIENT_CREATE_DATABASE_NAME" ]]; then
if is_boolean_yes "$ALLOW_EMPTY_PASSWORD"; then
empty_password_enabled_warn
else
if [[ -z "$MONGODB_CLIENT_CREATE_DATABASE_NAME" ]]; then
print_validation_error "Database name not configured. Set the MONGODB_CLIENT_CREATE_DATABASE_PASSWORD variable"
fi
if [[ -z "$MONGODB_CLIENT_DATABASE_ROOT_PASSWORD" ]]; then
empty_password_error "MYSQL_CLIENT_DATABASE_ROOT_PASSWORD"
fi
if [[ -z "$MONGODB_CLIENT_CREATE_DATABASE_PASSWORD" ]]; then
empty_password_error "MONGODB_CLIENT_CREATE_DATABASE_PASSWORD"
fi
fi
fi
return "$error_code"
}
########################
# Perform actions to a database
# Globals:
# MONGODB_CLIENT_*
# Arguments:
# None
# Returns:
# None
#########################
mongodb_client_initialize() {
# Wait for the database to be accessible if any action needs to be performed
if [[ -n "$MONGODB_CLIENT_CREATE_DATABASE_USERNAME" && -n "$MONGODB_CLIENT_CREATE_DATABASE_NAME" ]]; then
local -a mongodb_execute_args=("$MONGODB_CLIENT_DATABASE_ROOT_USER" "$MONGODB_CLIENT_DATABASE_ROOT_PASSWORD" "admin" "$MONGODB_CLIENT_DATABASE_HOST" "$MONGODB_CLIENT_DATABASE_PORT_NUMBER")
info "Trying to connect to the database server"
check_mongodb_connection() {
local res
res="$(mongodb_execute "${mongodb_execute_args[@]}" <<< "db.stats();")"
debug_execute echo "$res"
echo "$res" | grep -q '"ok" : 1'
}
if ! retry_while "check_mongodb_connection"; then
error "Could not connect to the database server"
return 1
fi
# Note: MongoDB only creates the database when you first store data in that database (i.e. creating a user)
# https://www.mongodb.com/basics/create-database
info "Creating database ${MONGODB_CLIENT_CREATE_DATABASE_NAME} and user ${MONGODB_CLIENT_CREATE_DATABASE_NAME}"
debug_execute mongodb_execute "${mongodb_execute_args[@]}" <<EOF
if (!db.system.users.findOne({_id: '${MONGODB_CLIENT_CREATE_DATABASE_NAME}.${MONGODB_CLIENT_CREATE_DATABASE_USERNAME}'}))
db.getSiblingDB('${MONGODB_CLIENT_CREATE_DATABASE_NAME}').createUser({
user: '${MONGODB_CLIENT_CREATE_DATABASE_USERNAME}',
pwd: '${MONGODB_CLIENT_CREATE_DATABASE_PASSWORD}',
roles: [{role: 'readWrite', db: '${MONGODB_CLIENT_CREATE_DATABASE_NAME}'}],
});
EOF
fi
}
########################
# Execute an arbitrary query/queries against the running MongoDB service
# Stdin:
# Query/queries to execute
# Arguments:
# $1 - User to run queries
# $2 - Password
# $3 - Database where to run the queries
# $4 - Host (default to result of get_mongo_hostname function)
# $5 - Port (default $MONGODB_PORT_NUMBER)
# $6 - Extra arguments (default $MONGODB_CLIENT_EXTRA_FLAGS)
# Returns:
# None
########################
mongodb_execute() {
local -r user="${1:-}"
local -r password="${2:-}"
local -r database="${3:-}"
local -r host="${4:-$(get_mongo_hostname)}"
local -r port="${5:-$MONGODB_PORT_NUMBER}"
local -r extra_args="${6:-$MONGODB_CLIENT_EXTRA_FLAGS}"
local final_user="$user"
# If password is empty it means no auth, do not specify user
[[ -z "$password" ]] && final_user=""
local -a args=("--host" "$host" "--port" "$port")
[[ -n "$final_user" ]] && args+=("-u" "$final_user")
[[ -n "$password" ]] && args+=("-p" "$password")
if [[ -n "$extra_args" ]]; then
local extra_args_array=()
read -r -a extra_args_array <<<"$extra_args"
[[ "${#extra_args_array[@]}" -gt 0 ]] && args+=("${extra_args_array[@]}")
fi
[[ -n "$database" ]] && args+=("$database")
"$MONGODB_BIN_DIR/mongo" "${args[@]}"
}

View File

@@ -1,77 +0,0 @@
#!/bin/bash
#
# Environment configuration for mongodb-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:-mongodb-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
mongodb_client_env_vars=(
ALLOW_EMPTY_PASSWORD
MONGODB_CLIENT_DATABASE_HOST
MONGODB_CLIENT_DATABASE_PORT_NUMBER
MONGODB_CLIENT_DATABASE_ROOT_USER
MONGODB_CLIENT_DATABASE_ROOT_PASSWORD
MONGODB_CLIENT_CREATE_DATABASE_NAME
MONGODB_CLIENT_CREATE_DATABASE_USERNAME
MONGODB_CLIENT_CREATE_DATABASE_PASSWORD
MONGODB_CLIENT_EXTRA_FLAGS
MONGODB_HOST
MONGODB_PORT_NUMBER
MONGODB_CLIENT_ROOT_USER
MONGODB_ROOT_USER
MONGODB_CLIENT_ROOT_PASSWORD
MONGODB_ROOT_PASSWORD
MONGODB_CLIENT_CREATE_DATABASE_USER
)
for env_var in "${mongodb_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 mongodb_client_env_vars
# Paths
export MONGODB_BASE_DIR="/opt/bitnami/mongodb-client"
export MONGODB_BIN_DIR="$MONGODB_BASE_DIR/bin"
export PATH="${MONGODB_BIN_DIR}:${PATH}"
# MongoDB settings
export ALLOW_EMPTY_PASSWORD="${ALLOW_EMPTY_PASSWORD:-no}"
MONGODB_CLIENT_DATABASE_HOST="${MONGODB_CLIENT_DATABASE_HOST:-"${MONGODB_HOST:-}"}"
export MONGODB_CLIENT_DATABASE_HOST="${MONGODB_CLIENT_DATABASE_HOST:-mongodb}"
MONGODB_CLIENT_DATABASE_PORT_NUMBER="${MONGODB_CLIENT_DATABASE_PORT_NUMBER:-"${MONGODB_PORT_NUMBER:-}"}"
export MONGODB_CLIENT_DATABASE_PORT_NUMBER="${MONGODB_CLIENT_DATABASE_PORT_NUMBER:-27017}"
MONGODB_CLIENT_DATABASE_ROOT_USER="${MONGODB_CLIENT_DATABASE_ROOT_USER:-"${MONGODB_CLIENT_ROOT_USER:-}"}"
MONGODB_CLIENT_DATABASE_ROOT_USER="${MONGODB_CLIENT_DATABASE_ROOT_USER:-"${MONGODB_ROOT_USER:-}"}"
export MONGODB_CLIENT_DATABASE_ROOT_USER="${MONGODB_CLIENT_DATABASE_ROOT_USER:-root}" # only used during the first initialization
MONGODB_CLIENT_DATABASE_ROOT_PASSWORD="${MONGODB_CLIENT_DATABASE_ROOT_PASSWORD:-"${MONGODB_CLIENT_ROOT_PASSWORD:-}"}"
MONGODB_CLIENT_DATABASE_ROOT_PASSWORD="${MONGODB_CLIENT_DATABASE_ROOT_PASSWORD:-"${MONGODB_ROOT_PASSWORD:-}"}"
export MONGODB_CLIENT_DATABASE_ROOT_PASSWORD="${MONGODB_CLIENT_DATABASE_ROOT_PASSWORD:-}" # only used during the first initialization
export MONGODB_CLIENT_CREATE_DATABASE_NAME="${MONGODB_CLIENT_CREATE_DATABASE_NAME:-}" # only used during the first initialization
MONGODB_CLIENT_CREATE_DATABASE_USERNAME="${MONGODB_CLIENT_CREATE_DATABASE_USERNAME:-"${MONGODB_CLIENT_CREATE_DATABASE_USER:-}"}"
export MONGODB_CLIENT_CREATE_DATABASE_USERNAME="${MONGODB_CLIENT_CREATE_DATABASE_USERNAME:-}" # only used during the first initialization
export MONGODB_CLIENT_CREATE_DATABASE_PASSWORD="${MONGODB_CLIENT_CREATE_DATABASE_PASSWORD:-}" # only used during the first initialization
export MONGODB_CLIENT_EXTRA_FLAGS="${MONGODB_CLIENT_EXTRA_FLAGS:-}"
# Custom environment variables may be defined below

View File

@@ -1,19 +0,0 @@
#!/bin/bash
# shellcheck disable=SC1091
set -o errexit
set -o nounset
set -o pipefail
# set -o xtrace # Uncomment this line for debugging purposes
# Load libraries
. /opt/bitnami/scripts/libmongodbclient.sh
# Load MongoDB Client environment variables
. /opt/bitnami/scripts/mongodb-client-env.sh
# Ensure MongoDB Client environment variables settings are valid
mongodb_client_validate
# Ensure MongoDB Client is initialized
mongodb_client_initialize

View File

@@ -35,7 +35,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/).
- [`4`, `4-debian-10`, `4.9.0`, `4.9.0-debian-10-r1`, `latest` (4/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-dreamfactory/blob/4.9.0-debian-10-r1/4/debian-10/Dockerfile)
- [`4`, `4-debian-10`, `4.9.0`, `4.9.0-debian-10-r2`, `latest` (4/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-dreamfactory/blob/4.9.0-debian-10-r2/4/debian-10/Dockerfile)
Subscribe to project updates by watching the [bitnami/dreamfactory GitHub repo](https://github.com/bitnami/bitnami-docker-dreamfactory).
@@ -96,17 +96,7 @@ $ docker run -d --name mariadb \
bitnami/mariadb:latest
```
#### Step 3: Create a volume for MongoDB&reg; persistence and create a MongoDB&reg; container
```console
$ docker volume create --name mongodb_data
$ docker run -d --name mongodb \
--network dreamfactory-network \
--volume mongodb_data:/bitnami/mongodb \
bitnami/mongob:latest
```
#### Step 4: Create a volume for Redis(TM) persistence and create a Redis(TM) container
#### Step 3: Create a volume for Redis(TM) persistence and create a Redis(TM) container
```console
$ docker volume create --name redis_data
@@ -140,7 +130,7 @@ If you remove the container all your data will be lost, and the next time you ru
For persistence you should mount a directory at the `/bitnami/dreamfactory` path. If the mounted directory is empty, it will be initialized on the first run. Additionally you should [mount a volume for persistence of the MariaDB data](https://github.com/bitnami/bitnami-docker-mariadb#persisting-your-database).
The above examples define the Docker volumes named `mariadb_data`, `mongodb_data`, `redis_data` and `dreamfactory_data`. The DreamFactory application state will persist as long as volumes are not removed.
The above examples define the Docker volumes named `mariadb_data`, `redis_data` and `dreamfactory_data`. The DreamFactory application state will persist as long as volumes are not removed.
To avoid inadvertent removal of volumes, you can [mount host directories as data volumes](https://docs.docker.com/engine/tutorials/dockervolumes/). Alternatively you can make use of volume plugins to host the volume data.
@@ -154,12 +144,6 @@ This requires a minor change to the [`docker-compose.yml`](https://github.com/bi
volumes:
- - 'mariadb_data:/bitnami/mariadb'
+ - /path/to/mariadb-persistence:/bitnami/mariadb
...
mongodb:
...
volumes:
- - 'mongodb_data:/bitnami/mongodb'
+ - /path/to/mongodb-persistence:/bitnami/mongodb
...
redis:
...
@@ -176,8 +160,6 @@ This requires a minor change to the [`docker-compose.yml`](https://github.com/bi
-volumes:
- mariadb_data:
- driver: local
- mongodb_data:
- driver: local
- redis_data:
- driver: local
- dreamfactory_data:
@@ -209,18 +191,7 @@ $ docker run -d --name mariadb \
> NOTE: As this is a non-root container, the mounted files and directories must have the proper permissions for the UID `1001`.
#### Step 3. Create a MariaDB container with host volume
```console
$ docker run -d --name mongodb \
--network dreamfactory-network \
--volume /path/to/mongodb-persistence:/bitnami/mongodb \
bitnami/mongodb:latest
```
> NOTE: As this is a non-root container, the mounted files and directories must have the proper permissions for the UID `1001`.
#### Step 4. Create a MariaDB container with host volume
#### Step 4. Create a Redis container with host volume
```console
$ docker run -d --name redis \
@@ -321,15 +292,6 @@ Available environment variables:
- `DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_USER`: Username for the extra PostgreSQL server. No default.
- `DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_PASSWORD`: Password for the extra PostgreSQL server user. No default.
##### Create an extra MongoDB&reg; service for DreamFactory
- `DREAMFACTORY_ENABLE_MONGODB_SERVICE`: Whether to enable a MongoDB&reg; service in DreamFactory. Default: **no**
- `DREAMFACTORY_POSTGRESQL_SERVICE_HOST`: Hostname for the extra MongoDB&reg; server. Default: **mongodb**
- `DREAMFACTORY_POSTGRESQL_SERVICE_PORT_NUMBER`: Port used by the extra MongoDB&reg; server. Default: **27017**
- `DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_NAME`: Database name to use for the extra MongoDB&reg; server. Default: **df**
- `DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_USER`: Username for the extra MongoDB&reg; server. No default.
- `DREAMFACTORY_POSTGRESQL_SERVICE_DATABASE_PASSWORD`: Password for the extra MongoDB&reg; server. No default.
##### Create a MariaDB or MySQL database for DreamFactory using mysql-client
- `MYSQL_CLIENT_DATABASE_HOST`: Hostname for the MariaDB or MySQL server. Default: **mariadb**
@@ -357,18 +319,6 @@ Available environment variables:
- `POSTGRESQL_CLIENT_CREATE_DATABASE_EXTENSIONS`: PostgreSQL extensions to enable in the specified database during the first initialization. No defaults.
- `ALLOW_EMPTY_PASSWORD`: It can be used to allow blank passwords. Default: **no**
##### Create a MongoDB database for DreamFactory using mongodb-client
- `MONGODB_CLIENT_DATABASE_HOST`: Hostname for the MongoDB server. Default: **mongodb**
- `MONGODB_CLIENT_DATABASE_PORT_NUMBER`: Port used by the MongoDB server. Default: **27017**
- `MONGODB_CLIENT_DATABASE_ROOT_USER`: Database admin user. Default: **root**
- `MONGODB_CLIENT_DATABASE_ROOT_PASSWORD`: Database password for the database admin user. No defaults.
- `MONGODB_CLIENT_CREATE_DATABASE_NAME`: New database to be created by the mongodb-client module. No defaults.
- `MONGODB_CLIENT_CREATE_DATABASE_USERNAME`: New database user to be created by the mongodb-client module. No defaults.
- `MONGODB_CLIENT_CREATE_DATABASE_PASSWORD`: Database password for the `MONGODB_CLIENT_CREATE_DATABASE_USERNAME` user. No defaults.
- `MONGODB_CLIENT_EXTRA_FLAGS`: Extra flags when using the mongodb-client during initialization. No defaults.
- `ALLOW_EMPTY_PASSWORD`: It can be used to allow blank passwords. Default: **no**
##### SMTP Configuration
To configure DreamFactory to send email using SMTP you can set the following environment variables:
@@ -533,7 +483,7 @@ For the DreamFactory container:
### Upgrade this image
Bitnami provides up-to-date versions of MariaDB, MongoDB&reg;, PostgreSQL, Redis(TM) and DreamFactory, including security patches, soon after they are made upstream. We recommend that you follow these steps to upgrade your container. We will cover here the upgrade of the DreamFactory container. For the MariaDB upgrade see https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#upgrade-this-image. For the MongoDB® upgrade see https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#upgrade-this-image. For the Redis(TM) upgrade see https://github.com/bitnami/bitnami-docker-redis/blob/master/README.md#upgrade-this-image
Bitnami provides up-to-date versions of MariaDB, PostgreSQL, Redis(TM) and DreamFactory, including security patches, soon after they are made upstream. We recommend that you follow these steps to upgrade your container. We will cover here the upgrade of the DreamFactory container. For the MariaDB upgrade see https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#upgrade-this-image. For the Redis(TM) upgrade see https://github.com/bitnami/bitnami-docker-redis/blob/master/README.md#upgrade-this-image
The `bitnami/dreamfactory:latest` tag always points to the most recent release. To get the most recent release you can simple repull the `latest` tag from the Docker Hub with `docker pull bitnami/dreamfactory:latest`. However it is recommended to use [tagged versions](https://hub.docker.com/r/bitnami/dreamfactory/tags/).
@@ -555,7 +505,7 @@ $ docker-compose stop dreamfactory
Follow the steps in [Backing up your container](#backing-up-your-container) to take a snapshot of the current application state.
Additionally, snapshot the [MariaDB](https://github.com/bitnami/bitnami-docker-mariadb#step-2-stop-and-backup-the-currently-running-container), [MongoDB&reg;](https://github.com/bitnami/bitnami-docker-mongodb#step-2-stop-and-backup-the-currently-running-container) and [Redis(TM)](https://github.com/bitnami/bitnami-docker-redis#step-2-stop-and-backup-the-currently-running-container) data.
Additionally, snapshot the [MariaDB](https://github.com/bitnami/bitnami-docker-mariadb#step-2-stop-and-backup-the-currently-running-container) and [Redis(TM)](https://github.com/bitnami/bitnami-docker-redis#step-2-stop-and-backup-the-currently-running-container) data.
You can use these snapshots to restore the application state should the upgrade fail.
@@ -652,7 +602,7 @@ Based on the extended image, you can update the [`docker-compose.yml`](https://g
## 4.0.1-debian-10-r19
- PostgreSQL is now a supported database for storing DreamFactory configuration. Check the environment variable `DREAMFACTORY_DATABASE_TYPE` (default: `mariadb`). When `postgresql` is specified, a PostgreSQL database will be configured with the connection configuration in the environment variables `POSTGRESQL_HOST`, `POSTGRESQL_PORT_NUMBER`, `POSTGRESQL_USER` and `POSTGRESQL_PASSWORD`.
- It is possible to enable/disable the additional database service that is created by default, by setting the environment variable `DREAMFACTORY_ENABLE_MARIADB_DATABASE` for MariaDB database (default: `no`), `DREAMFACTORY_ENABLE_POSTGRESQL_DATABASE` for PostgreSQL database (default: `no`) and `DREAMFACTORY_ENABLE_MONGODB_DATABASE` for MongoDB&reg; database (default: `yes`). A service will be created for the default database type specified in `DREAMFACTORY_DATABASE_TYPE` (default: `mariadb`).
- It is possible to enable/disable the additional database service that is created by default, by setting the environment variable `DREAMFACTORY_ENABLE_MARIADB_DATABASE` for MariaDB database (default: `no`), and `DREAMFACTORY_ENABLE_POSTGRESQL_DATABASE` for PostgreSQL database (default: `no`). A service will be created for the default database type specified in `DREAMFACTORY_DATABASE_TYPE` (default: `mariadb`).
## 2.14.1-debian-9-r195 and 2.14.1-ol-7-r204

View File

@@ -8,10 +8,6 @@ services:
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=bn_dreamfactory
- MARIADB_DATABASE=bitnami_dreamfactory
mongodb:
image: docker.io/bitnami/mongodb:5.0
volumes:
- 'mongodb_data:/bitnami/mongodb'
redis:
image: docker.io/bitnami/redis:6.0
volumes:
@@ -28,7 +24,6 @@ services:
- 'dreamfactory_data:/bitnami/dreamfactory'
depends_on:
- mariadb
- mongodb
- redis
environment:
- ALLOW_EMPTY_PASSWORD=yes
@@ -46,20 +41,9 @@ services:
- MYSQL_CLIENT_DATABASE_PORT_NUMBER=3306
- MYSQL_CLIENT_CREATE_DATABASE_NAME=df
- MYSQL_CLIENT_CREATE_DATABASE_USER=df
# Enable MongoDB service for DreamFactory
- DREAMFACTORY_ENABLE_MONGODB_SERVICE=yes
- DREAMFACTORY_MONGODB_SERVICE_DATABASE_NAME=df
- DREAMFACTORY_MONGODB_SERVICE_DATABASE_USER=df
# Create MongoDB database for extra service
- MONGODB_CLIENT_DATABASE_HOST=mongodb
- MONGODB_CLIENT_DATABASE_PORT_NUMBER=27017
- MONGODB_CLIENT_CREATE_DATABASE_NAME=df
- MONGODB_CLIENT_CREATE_DATABASE_USERNAME=df
volumes:
mariadb_data:
driver: local
mongodb_data:
driver: local
redis_data:
driver: local
dreamfactory_data: