mirror of
https://github.com/bitnami/containers.git
synced 2026-03-16 06:49:12 +08:00
6.1.4-4-debian-10-r4 release
This commit is contained in:
@@ -7,13 +7,14 @@ ENV OS_ARCH="amd64" \
|
||||
|
||||
COPY prebuildfs /
|
||||
# Install required system packages and dependencies
|
||||
RUN install_packages acl build-essential ca-certificates curl default-libmysqlclient-dev ghostscript git gzip imagemagick libaudit1 libbz2-1.0 libc6 libcap-ng0 libcom-err2 libcurl4 libffi6 libgcc1 libgcrypt20 libgmp-dev libgmp10 libgnutls30 libgpg-error0 libgssapi-krb5-2 libhogweed4 libicu63 libidn2-0 libjemalloc2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap-2.4-2 liblzma5 libmariadb3 libncurses6 libncursesw6 libnettle6 libnghttp2-14 libp11-kit0 libpam0g libpq5 libpsl5 libreadline-dev libreadline7 librtmp1 libsasl2-2 libsqlite3-0 libsqlite3-dev libssh2-1 libssl-dev libssl1.1 libstdc++6 libtasn1-6 libtinfo6 libunistring2 libxml2 libxml2-dev libxslt1-dev netcat netcat-traditional pkg-config procps sqlite3 sudo tar unzip wget zlib1g zlib1g-dev
|
||||
RUN install_packages acl ca-certificates curl ghostscript gzip imagemagick libaudit1 libbz2-1.0 libc6 libcap-ng0 libcom-err2 libcurl4 libffi6 libgcc1 libgcrypt20 libgmp-dev libgmp10 libgnutls30 libgpg-error0 libgssapi-krb5-2 libhogweed4 libicu63 libidn2-0 libjemalloc2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap-2.4-2 liblzma5 libmariadb3 libncurses6 libncursesw6 libnettle6 libnghttp2-14 libp11-kit0 libpam0g libpq5 libpsl5 libreadline-dev libreadline7 librtmp1 libsasl2-2 libsqlite3-0 libssh2-1 libssl-dev libssl1.1 libstdc++6 libtasn1-6 libtinfo6 libunistring2 libxml2 libxml2-dev libxslt1-dev procps sqlite3 sudo tar zlib1g zlib1g-dev
|
||||
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "python" "3.8.12-11" --checksum 18529e5433b2ff7007527ec2fa5b608cb6432e27ec3e6a9f3ab94fcdb7586475
|
||||
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "ruby" "2.6.9-1" --checksum 44e353b2a0312b4ebff7953080128630594fac97f97fc29b5f3ff0bab3b56429
|
||||
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "node" "14.18.2-0" --checksum 5753bbbe5052000888c24ef8c918cfc45577878b03cc4dcfe7d53ea562a48e5a
|
||||
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "mysql-client" "10.3.32-0" --checksum 4a211faa9436c9747dfc4374cb9e8a7f9b0065dfc58dd4784cef0f5029c2e65e
|
||||
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "git" "2.34.1-0" --checksum 3da2501870c9c3efe8cfa47b7bba894d8d97292a5274b682af1eded3b671641b
|
||||
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "rails" "6.1.4-4-0" --checksum e29dc41aba4fa7a796eca7595b93720fbeb8eda0b4df53523627c8b0864eb0e8
|
||||
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "wait-for-port" "1.0.1-4" --checksum 53c0f1a5361a68c298f31f6701c8e8a026e77f09805d54ecfeb52cf5998d7d06
|
||||
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "rails" "6.1.4-4-1" --checksum e21bb9668113df37e88f3148374d13f4e430d1d8f0ad519a5ccc9033d207646e
|
||||
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "gosu" "1.14.0-0" --checksum 3e6fc37ca073b10a73a804d39c2f0c028947a1a596382a4f8ebe43dfbaa3a25e
|
||||
RUN /build/bitnami-user.sh
|
||||
|
||||
@@ -21,7 +22,7 @@ COPY rootfs /
|
||||
RUN /opt/bitnami/scripts/rails/postunpack.sh
|
||||
ENV ALLOW_EMPTY_PASSWORD="no" \
|
||||
BITNAMI_APP_NAME="rails" \
|
||||
BITNAMI_IMAGE_VERSION="6.1.4-4-debian-10-r3" \
|
||||
BITNAMI_IMAGE_VERSION="6.1.4-4-debian-10-r4" \
|
||||
MARIADB_HOST="mariadb" \
|
||||
MARIADB_PORT_NUMBER="3306" \
|
||||
MARIADB_ROOT_PASSWORD="" \
|
||||
@@ -37,6 +38,5 @@ ENV ALLOW_EMPTY_PASSWORD="no" \
|
||||
EXPOSE 3000
|
||||
|
||||
WORKDIR /app
|
||||
USER bitnami
|
||||
ENTRYPOINT [ "/opt/bitnami/scripts/rails/entrypoint.sh" ]
|
||||
CMD [ "bundle", "exec", "rails", "server", "-b", "0.0.0.0", "-p", "3000" ]
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
version: '2'
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
image: docker.io/bitnami/mariadb:10.3
|
||||
environment:
|
||||
# ALLOW_EMPTY_PASSWORD is recommended only for development.
|
||||
- ALLOW_EMPTY_PASSWORD=yes
|
||||
|
||||
myapp:
|
||||
tty: true # Enables debugging capabilities when attached to this container.
|
||||
image: docker.io/bitnami/rails:6
|
||||
ports:
|
||||
- '3000:3000'
|
||||
environment:
|
||||
- DATABASE_HOST=mariadb
|
||||
- DATABASE_NAME=my_app_development
|
||||
volumes:
|
||||
- './my-project:/app'
|
||||
depends_on:
|
||||
- mariadb
|
||||
ports:
|
||||
- 3000:3000
|
||||
volumes:
|
||||
- .:/app
|
||||
|
||||
@@ -36,10 +36,10 @@
|
||||
},
|
||||
"rails": {
|
||||
"arch": "amd64",
|
||||
"digest": "e29dc41aba4fa7a796eca7595b93720fbeb8eda0b4df53523627c8b0864eb0e8",
|
||||
"digest": "e21bb9668113df37e88f3148374d13f4e430d1d8f0ad519a5ccc9033d207646e",
|
||||
"distro": "debian-10",
|
||||
"type": "NAMI",
|
||||
"version": "6.1.4-4-0"
|
||||
"version": "6.1.4-4-1"
|
||||
},
|
||||
"ruby": {
|
||||
"arch": "amd64",
|
||||
@@ -47,5 +47,12 @@
|
||||
"distro": "debian-10",
|
||||
"type": "NAMI",
|
||||
"version": "2.6.9-1"
|
||||
},
|
||||
"wait-for-port": {
|
||||
"arch": "amd64",
|
||||
"digest": "53c0f1a5361a68c298f31f6701c8e8a026e77f09805d54ecfeb52cf5998d7d06",
|
||||
"distro": "debian-10",
|
||||
"type": "NAMI",
|
||||
"version": "1.0.1-4"
|
||||
}
|
||||
}
|
||||
@@ -6,60 +6,26 @@
|
||||
|
||||
# Load Generic Libraries
|
||||
. /opt/bitnami/scripts/libfs.sh
|
||||
. /opt/bitnami/scripts/libfile.sh
|
||||
. /opt/bitnami/scripts/liblog.sh
|
||||
. /opt/bitnami/scripts/libos.sh
|
||||
. /opt/bitnami/scripts/libnet.sh
|
||||
. /opt/bitnami/scripts/libvalidations.sh
|
||||
. /opt/bitnami/scripts/libservice.sh
|
||||
|
||||
########################
|
||||
# Load global variables used on Rails configuration.
|
||||
# Validate settings in RAILS_* env vars
|
||||
# Globals:
|
||||
# RAILS_ENV
|
||||
# SKIP_ACTIVE_RECORD
|
||||
# SKIP_DB_SETUP
|
||||
# SKIP_DB_WAIT
|
||||
# RETRY_ATTEMPTS
|
||||
# PATH
|
||||
# DATABASE_HOST
|
||||
# DATABASE_NAME
|
||||
# DATABASE_TYPE
|
||||
# DATABASE_PORT_NUMBER
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
# Series of exports to be used as 'eval' arguments
|
||||
#########################
|
||||
rails_env() {
|
||||
cat <<"EOF"
|
||||
RAILS_ENV="${RAILS_ENV:-development}"
|
||||
SKIP_ACTIVE_RECORD="${SKIP_ACTIVE_RECORD:-no}"
|
||||
SKIP_DB_SETUP="${SKIP_DB_SETUP:-no}"
|
||||
SKIP_DB_WAIT="${SKIP_DB_WAIT:-no}"
|
||||
RETRY_ATTEMPTS="${RETRY_ATTEMPTS:-30}"
|
||||
PATH="/opt/bitnami/ruby/bin:/opt/bitnami/mysql/bin:/opt/bitnami/node/bin:/opt/bitnami/git/bin:${PATH}"
|
||||
|
||||
# Database configuration
|
||||
DATABASE_HOST="${DATABASE_HOST:-mariadb}"
|
||||
DATABASE_TYPE="${DATABASE_TYPE:-mysql}"
|
||||
DATABASE_NAME="${DATABASE_NAME:-my_app_development}"
|
||||
DATABASE_PORT_NUMBER="${DATABASE_PORT_NUMBER:-3306}"
|
||||
EOF
|
||||
}
|
||||
|
||||
########################
|
||||
# Validate settings in DATABASE_* env vars
|
||||
# Globals:
|
||||
# SKIP_ACTIVE_RECORD
|
||||
# SKIP_DB_SETUP
|
||||
# SKIP_DB_WAIT
|
||||
# RETRY_ATTEMPTS
|
||||
# RAILS_SKIP_ACTIVE_RECORD
|
||||
# RAILS_SKIP_DB_SETUP
|
||||
# RAILS_SKIP_DB_WAIT
|
||||
# RAILS_RETRY_ATTEMPTS
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
rails_validate() {
|
||||
debug "Validating settings in DATABASE_* environment variables..."
|
||||
debug "Validating settings in RAILS_* environment variables..."
|
||||
local error_code=0
|
||||
|
||||
# Auxiliary functions
|
||||
@@ -67,23 +33,48 @@ rails_validate() {
|
||||
error "$1"
|
||||
error_code=1
|
||||
}
|
||||
|
||||
check_yes_no_value() {
|
||||
if ! is_yes_no_value "${!1}" && ! is_true_false_value "${!1}"; then
|
||||
print_validation_error "The allowed values for $1 are [yes, no]"
|
||||
fi
|
||||
}
|
||||
|
||||
check_positive_value() {
|
||||
if ! is_positive_int "${!1}"; then
|
||||
print_validation_error "The variable $1 must be positive integer"
|
||||
fi
|
||||
}
|
||||
check_resolved_hostname() {
|
||||
if ! is_hostname_resolved "$1"; then
|
||||
warn "Hostname ${1} could not be resolved, this could lead to connection issues"
|
||||
fi
|
||||
}
|
||||
check_valid_port() {
|
||||
local port_var="${1:?missing port variable}"
|
||||
local err
|
||||
if ! err="$(validate_port "${!port_var}")"; then
|
||||
print_validation_error "An invalid port was specified in the environment variable ${port_var}: ${err}."
|
||||
fi
|
||||
}
|
||||
|
||||
check_yes_no_value SKIP_ACTIVE_RECORD
|
||||
check_yes_no_value SKIP_DB_SETUP
|
||||
check_yes_no_value SKIP_DB_WAIT
|
||||
check_positive_value RETRY_ATTEMPTS
|
||||
check_yes_no_value RAILS_SKIP_ACTIVE_RECORD
|
||||
check_yes_no_value RAILS_SKIP_DB_SETUP
|
||||
check_yes_no_value RAILS_SKIP_DB_WAIT
|
||||
check_positive_value RAILS_RETRY_ATTEMPTS
|
||||
|
||||
# Skip database intialization
|
||||
if is_boolean_yes "$RAILS_SKIP_ACTIVE_RECORD"; then
|
||||
RAILS_SKIP_DB_WAIT="yes"
|
||||
RAILS_SKIP_DB_SETUP="yes"
|
||||
fi
|
||||
|
||||
# Validate database type
|
||||
[[ "$RAILS_DATABASE_TYPE" = "mariadb" ]] && RAILS_DATABASE_TYPE=mysql
|
||||
|
||||
# Database configuration validations
|
||||
if ! is_boolean_yes "$RAILS_SKIP_DB_WAIT" && ! is_boolean_yes "$RAILS_SKIP_DB_SETUP" && [[ "$RAILS_DATABASE_TYPE" != "sqlite3" ]]; then
|
||||
check_resolved_hostname "$RAILS_DATABASE_HOST"
|
||||
check_valid_port "RAILS_DATABASE_PORT_NUMBER"
|
||||
fi
|
||||
|
||||
[[ "$error_code" -eq 0 ]] || exit "$error_code"
|
||||
}
|
||||
@@ -98,11 +89,6 @@ rails_validate() {
|
||||
# None
|
||||
#########################
|
||||
rails_initialize() {
|
||||
# Skip database intialization
|
||||
if is_boolean_yes "$SKIP_ACTIVE_RECORD"; then
|
||||
export SKIP_DB_WAIT="yes"
|
||||
export SKIP_DB_SETUP="yes"
|
||||
fi
|
||||
# Initialize Rails project
|
||||
if [[ -f "config.ru" ]]; then
|
||||
info "Rails project found, skipping creation"
|
||||
@@ -110,65 +96,42 @@ rails_initialize() {
|
||||
bundle install
|
||||
else
|
||||
info "Creating new Rails project"
|
||||
if is_boolean_yes "$SKIP_ACTIVE_RECORD"; then
|
||||
if is_boolean_yes "$RAILS_SKIP_ACTIVE_RECORD"; then
|
||||
rails new "." --skip-active-record
|
||||
else
|
||||
rails new "." --database "$DATABASE_TYPE"
|
||||
rails new "." --database "$RAILS_DATABASE_TYPE"
|
||||
# Set up database configuration
|
||||
local database_path="$DATABASE_NAME"
|
||||
[[ "$DATABASE_TYPE" = "sqlite3" ]] && database_path="db/${DATABASE_NAME}.sqlite3"
|
||||
info "Configuring database host to ${DATABASE_HOST}"
|
||||
replace_in_file "config/database.yml" "host:.*$" "host: ${DATABASE_HOST}"
|
||||
info "Configuring database name to ${DATABASE_NAME}"
|
||||
local database_path="$RAILS_DATABASE_NAME"
|
||||
[[ "$RAILS_DATABASE_TYPE" = "sqlite3" ]] && database_path="db/${RAILS_DATABASE_NAME}.sqlite3"
|
||||
info "Configuring database host to ${RAILS_DATABASE_HOST}"
|
||||
replace_in_file "config/database.yml" "host:.*$" "host: ${RAILS_DATABASE_HOST}"
|
||||
info "Configuring database name to ${RAILS_DATABASE_NAME}"
|
||||
replace_in_file "config/database.yml" "database:.*$" "database: ${database_path}" "1,/test:/ "
|
||||
fi
|
||||
fi
|
||||
|
||||
# Wait for database and initialize
|
||||
is_boolean_yes "$SKIP_DB_WAIT" || wait_for_db
|
||||
is_boolean_yes "$SKIP_DB_SETUP" || initialize_db
|
||||
}
|
||||
|
||||
########################
|
||||
# Replace a regex in a file
|
||||
# Arguments:
|
||||
# $1 - filename
|
||||
# $2 - match regex
|
||||
# $3 - substitute regex
|
||||
# $4 - regex modifier
|
||||
# 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 regex_modifier="${4:-}"
|
||||
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
|
||||
result="$(sed "${regex_modifier}s@${match_regex}@${substitute_regex}@g" "$filename")"
|
||||
echo "$result" > "$filename"
|
||||
is_boolean_yes "$RAILS_SKIP_DB_WAIT" || wait_for_db
|
||||
is_boolean_yes "$RAILS_SKIP_DB_SETUP" || initialize_db
|
||||
}
|
||||
|
||||
########################
|
||||
# Wait for database to be ready
|
||||
# Globals:
|
||||
# RETRY_ATTEMPTS
|
||||
# DATABASE_HOST
|
||||
# DATABASE_TYPE
|
||||
# DATABASE_PORT_NUMBER
|
||||
# RAILS_RETRY_ATTEMPTS
|
||||
# RAILS_DATABASE_HOST
|
||||
# RAILS_DATABASE_TYPE
|
||||
# RAILS_DATABASE_PORT_NUMBER
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
wait_for_db() {
|
||||
[[ "$DATABASE_TYPE" = "sqlite3" ]] && return
|
||||
info "Connecting to the database at ${DATABASE_HOST} (type: ${DATABASE_TYPE})"
|
||||
if ! retry_while "nc -z ${DATABASE_HOST} ${DATABASE_PORT_NUMBER}" "$RETRY_ATTEMPTS"; then
|
||||
error "Failed to connect to the database at ${DATABASE_HOST}"
|
||||
[[ "$RAILS_DATABASE_TYPE" = *"sqlite3"* ]] && return
|
||||
info "Connecting to the database at ${RAILS_DATABASE_HOST} (type: ${RAILS_DATABASE_TYPE})"
|
||||
if ! retry_while "debug_execute wait-for-port --timeout 5 --host ${RAILS_DATABASE_HOST} ${RAILS_DATABASE_PORT_NUMBER}" "$RAILS_RETRY_ATTEMPTS"; then
|
||||
error "Failed to connect to the database at ${RAILS_DATABASE_HOST}"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
@@ -176,7 +139,7 @@ wait_for_db() {
|
||||
########################
|
||||
# Initialize database
|
||||
# Globals:
|
||||
# RETRY_ATTEMPTS
|
||||
# RAILS_RETRY_ATTEMPTS
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
@@ -186,7 +149,7 @@ initialize_db() {
|
||||
# The db:prepare command performs db:create, db:migrate and db:seed only when needed
|
||||
# If the database already exists, only db:migrate is run
|
||||
info "Initializing database (db:prepare)"
|
||||
if ! retry_while "bundle exec rails db:prepare" "$RETRY_ATTEMPTS"; then
|
||||
if ! retry_while "bundle exec rails db:prepare" "$RAILS_RETRY_ATTEMPTS"; then
|
||||
error "Failed to create database"
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Environment configuration for rails
|
||||
|
||||
# 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:-rails}"
|
||||
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
|
||||
rails_env_vars=(
|
||||
RAILS_ENV
|
||||
RAILS_SKIP_ACTIVE_RECORD
|
||||
RAILS_SKIP_DB_SETUP
|
||||
RAILS_SKIP_DB_WAIT
|
||||
RAILS_RETRY_ATTEMPTS
|
||||
RAILS_DATABASE_TYPE
|
||||
RAILS_DATABASE_HOST
|
||||
RAILS_DATABASE_PORT_NUMBER
|
||||
RAILS_DATABASE_NAME
|
||||
SKIP_ACTIVE_RECORD
|
||||
SKIP_DB_SETUP
|
||||
SKIP_DB_WAIT
|
||||
RETRY_ATTEMPTS
|
||||
DATABASE_TYPE
|
||||
DATABASE_HOST
|
||||
DATABASE_PORT_NUMBER
|
||||
DATABASE_NAME
|
||||
)
|
||||
for env_var in "${rails_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 rails_env_vars
|
||||
|
||||
# Rails configuration
|
||||
export RAILS_ENV="${RAILS_ENV:-development}"
|
||||
RAILS_SKIP_ACTIVE_RECORD="${RAILS_SKIP_ACTIVE_RECORD:-"${SKIP_ACTIVE_RECORD:-}"}"
|
||||
export RAILS_SKIP_ACTIVE_RECORD="${RAILS_SKIP_ACTIVE_RECORD:-no}"
|
||||
RAILS_SKIP_DB_SETUP="${RAILS_SKIP_DB_SETUP:-"${SKIP_DB_SETUP:-}"}"
|
||||
export RAILS_SKIP_DB_SETUP="${RAILS_SKIP_DB_SETUP:-no}"
|
||||
RAILS_SKIP_DB_WAIT="${RAILS_SKIP_DB_WAIT:-"${SKIP_DB_WAIT:-}"}"
|
||||
export RAILS_SKIP_DB_WAIT="${RAILS_SKIP_DB_WAIT:-no}"
|
||||
RAILS_RETRY_ATTEMPTS="${RAILS_RETRY_ATTEMPTS:-"${RETRY_ATTEMPTS:-}"}"
|
||||
export RAILS_RETRY_ATTEMPTS="${RAILS_RETRY_ATTEMPTS:-30}"
|
||||
export PATH="${BITNAMI_ROOT_DIR}/ruby/bin:${BITNAMI_ROOT_DIR}/mysql/bin:${BITNAMI_ROOT_DIR}/node/bin:${BITNAMI_ROOT_DIR}/git/bin:${PATH}"
|
||||
|
||||
# Database configuration
|
||||
RAILS_DATABASE_TYPE="${RAILS_DATABASE_TYPE:-"${DATABASE_TYPE:-}"}"
|
||||
export RAILS_DATABASE_TYPE="${RAILS_DATABASE_TYPE:-mariadb}" # only used during the first initialization
|
||||
RAILS_DATABASE_HOST="${RAILS_DATABASE_HOST:-"${DATABASE_HOST:-}"}"
|
||||
export RAILS_DATABASE_HOST="${RAILS_DATABASE_HOST:-mariadb}" # only used during the first initialization
|
||||
RAILS_DATABASE_PORT_NUMBER="${RAILS_DATABASE_PORT_NUMBER:-"${DATABASE_PORT_NUMBER:-}"}"
|
||||
export RAILS_DATABASE_PORT_NUMBER="${RAILS_DATABASE_PORT_NUMBER:-3306}" # only used during the first initialization
|
||||
RAILS_DATABASE_NAME="${RAILS_DATABASE_NAME:-"${DATABASE_NAME:-}"}"
|
||||
export RAILS_DATABASE_NAME="${RAILS_DATABASE_NAME:-bitnami_myapp}" # only used during the first initialization
|
||||
|
||||
# Custom environment variables may be defined below
|
||||
@@ -5,15 +5,14 @@
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
#set -o xtrace
|
||||
# set -o xtrace # Uncomment this line for debugging purposes
|
||||
|
||||
# Load libraries
|
||||
. /opt/bitnami/scripts/librails.sh
|
||||
. /opt/bitnami/scripts/libbitnami.sh
|
||||
. /opt/bitnami/scripts/liblog.sh
|
||||
|
||||
# Load Rails environment
|
||||
eval "$(rails_env)"
|
||||
. /opt/bitnami/scripts/rails-env.sh
|
||||
|
||||
print_welcome_page
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
# set -o xtrace # Uncomment this line for debugging purpose
|
||||
# set -o xtrace # Uncomment this line for debugging purposes
|
||||
|
||||
# Load libraries
|
||||
. /opt/bitnami/scripts/librails.sh
|
||||
@@ -13,8 +13,8 @@ set -o pipefail
|
||||
. /opt/bitnami/scripts/liblog.sh
|
||||
|
||||
# Load Rails environment
|
||||
eval "$(rails_env)"
|
||||
. /opt/bitnami/scripts/rails-env.sh
|
||||
|
||||
info "Granting non-root permissions to /app directory"
|
||||
mkdir -p /app
|
||||
chown -R bitnami:bitnami /app
|
||||
# Ensure required directories exist
|
||||
ensure_dir_exists "/app"
|
||||
configure_permissions_ownership "/app" -d "775" -f "664"
|
||||
|
||||
@@ -5,16 +5,19 @@
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
# set -o xtrace # Uncomment this line for debugging purpose
|
||||
# set -o xtrace # Uncomment this line for debugging purposes
|
||||
|
||||
# Load libraries
|
||||
. /opt/bitnami/scripts/librails.sh
|
||||
|
||||
# Load Rails environment
|
||||
eval "$(rails_env)"
|
||||
. /opt/bitnami/scripts/rails-env.sh
|
||||
|
||||
# Ensure environment variables for the Rails app are valid
|
||||
rails_validate
|
||||
|
||||
# Ensure Rails app is initialized
|
||||
rails_initialize
|
||||
|
||||
# Ensure all folders in /app are writable by the non-root "bitnami" user
|
||||
chown -R bitnami:bitnami /app
|
||||
|
||||
36
bitnami/rails/6/debian-10/rootfs/post-init.d/shell.sh
Executable file
36
bitnami/rails/6/debian-10/rootfs/post-init.d/shell.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Executes custom Bash init scripts
|
||||
|
||||
# shellcheck disable=SC1090,SC1091
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
# set -o xtrace # Uncomment this line for debugging purposes
|
||||
|
||||
# Load libraries with logging functions
|
||||
if [[ -f /opt/bitnami/base/functions ]]; then
|
||||
. /opt/bitnami/base/functions
|
||||
else
|
||||
. /opt/bitnami/scripts/liblog.sh
|
||||
fi
|
||||
|
||||
# Loop through all input files passed via stdin
|
||||
read -r -a custom_init_scripts <<< "$@"
|
||||
failure=0
|
||||
if [[ "${#custom_init_scripts[@]}" -gt 0 ]]; then
|
||||
for custom_init_script in "${custom_init_scripts[@]}"; do
|
||||
[[ "$custom_init_script" != *".sh" ]] && continue
|
||||
if [[ -x "$custom_init_script" ]]; then
|
||||
info "Executing ${custom_init_script}"
|
||||
"$custom_init_script" || failure="1"
|
||||
else
|
||||
info "Sourcing ${custom_init_script} as it is not executable by the current user, any error may cause initialization to fail"
|
||||
. "$custom_init_script"
|
||||
fi
|
||||
[[ "$failure" -ne 0 ]] && error "Failed to execute ${custom_init_script}"
|
||||
done
|
||||
fi
|
||||
|
||||
exit "$failure"
|
||||
23
bitnami/rails/6/debian-10/rootfs/post-init.sh
Executable file
23
bitnami/rails/6/debian-10/rootfs/post-init.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
# set -o xtrace # Uncomment this line for debugging purposes
|
||||
|
||||
# Only execute init scripts once
|
||||
if [[ ! -f "/bitnami/rails/.user_scripts_initialized" && -d "/docker-entrypoint-init.d" ]]; then
|
||||
read -r -a init_scripts <<< "$(find "/docker-entrypoint-init.d" -type f -print0 | sort -z | xargs -0)"
|
||||
if [[ "${#init_scripts[@]}" -gt 0 ]] && [[ ! -f "/bitnami/rails/.user_scripts_initialized" ]]; then
|
||||
mkdir -p "/bitnami/rails"
|
||||
for init_script in "${init_scripts[@]}"; do
|
||||
for init_script_type_handler in /post-init.d/*.sh; do
|
||||
"$init_script_type_handler" "$init_script"
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
touch "/bitnami/rails/.user_scripts_initialized"
|
||||
fi
|
||||
@@ -37,7 +37,7 @@ $ docker-compose up
|
||||
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/).
|
||||
|
||||
|
||||
* [`6`, `6-debian-10`, `6.1.4-4`, `6.1.4-4-debian-10-r3`, `latest` (6/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-rails/blob/6.1.4-4-debian-10-r3/6/debian-10/Dockerfile)
|
||||
* [`6`, `6-debian-10`, `6.1.4-4`, `6.1.4-4-debian-10-r4`, `latest` (6/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-rails/blob/6.1.4-4-debian-10-r4/6/debian-10/Dockerfile)
|
||||
|
||||
Subscribe to project updates by watching the [bitnami/rails GitHub repo](https://github.com/bitnami/bitnami-docker-rails).
|
||||
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
version: '2'
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
image: docker.io/bitnami/mariadb:10.3
|
||||
environment:
|
||||
# ALLOW_EMPTY_PASSWORD is recommended only for development.
|
||||
- ALLOW_EMPTY_PASSWORD=yes
|
||||
|
||||
myapp:
|
||||
tty: true # Enables debugging capabilities when attached to this container.
|
||||
image: docker.io/bitnami/rails:6
|
||||
ports:
|
||||
- '3000:3000'
|
||||
environment:
|
||||
- DATABASE_HOST=mariadb
|
||||
- DATABASE_NAME=my_app_development
|
||||
volumes:
|
||||
- './my-project:/app'
|
||||
depends_on:
|
||||
- mariadb
|
||||
ports:
|
||||
- 3000:3000
|
||||
volumes:
|
||||
- .:/app
|
||||
|
||||
Reference in New Issue
Block a user