69 lines
No EOL
1.5 KiB
Bash
69 lines
No EOL
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# ============================================
|
|
# Engine config
|
|
# ============================================
|
|
|
|
MYSQL_INTERNAL_PORT=3306
|
|
MSSQL_INTERNAL_PORT=1433
|
|
|
|
function docker::db::internal_port() {
|
|
case "$DB_ENGINE" in
|
|
mysql) echo $MYSQL_INTERNAL_PORT ;;
|
|
mssql) echo $MSSQL_INTERNAL_PORT ;;
|
|
esac
|
|
}
|
|
|
|
function docker::db::external_port() {
|
|
# If already resolved to a plain number, use it
|
|
if [[ -n "$DB_PORT" && "$DB_PORT" != "auto" ]]; then
|
|
echo "$DB_PORT"
|
|
return
|
|
fi
|
|
|
|
# Otherwise resolve from internal port as base
|
|
network::ports::resolve "auto:$(docker::db::internal_port)"
|
|
}
|
|
|
|
function docker::db::internal_path() {
|
|
case "$DB_ENGINE" in
|
|
mysql) echo "/var/lib/mysql" ;;
|
|
mssql) echo "/var/opt/mssql/data" ;;
|
|
esac
|
|
}
|
|
|
|
function docker::db::external_path() { ctx::artifact::path database; }
|
|
|
|
function docker::db::_mysql_vars() {
|
|
cat << EOF
|
|
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
|
|
MYSQL_DATABASE: "${DB_NAME}"
|
|
MYSQL_USER: "${DB_USER}"
|
|
MYSQL_PASSWORD: "${DB_PASS}"
|
|
EOF
|
|
}
|
|
|
|
function docker::db::_mssql_vars() {
|
|
cat << EOF
|
|
SA_PASSWORD: ${DB_PASS}
|
|
ACCEPT_EULA: 'Y'
|
|
EOF
|
|
}
|
|
|
|
# ============================================
|
|
# Generation
|
|
# ============================================
|
|
|
|
function docker::db::environment() {
|
|
case "$DB_ENGINE" in
|
|
mysql) docker::db::_mysql_vars ;;
|
|
mssql) docker::db::_mssql_vars ;;
|
|
esac
|
|
}
|
|
# ============================================
|
|
# Load
|
|
# ============================================
|
|
|
|
#function docker::db::on_load() {
|
|
#
|
|
#} |