#!/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() { # #}