mirror of
https://github.com/bitnami/containers.git
synced 2026-03-16 06:49:12 +08:00
Adding docker-entrypoint-startdb.d (#144)
* Adding docker-entrypoint-startdb.d Signed-off-by: IkeMtz <ikemtz@outlook.com> * Bug fix on 5.7 Signed-off-by: IkeMtz <ikemtz@outlook.com> * Simplifying logic Signed-off-by: IkeMtz <ikemtz@outlook.com> * Bug fix on simplified start/init logic Signed-off-by: IkeMtz <ikemtz@outlook.com> * Update README.md Co-authored-by: Carlos Rodríguez Hernández <carrodher1179@gmail.com> Signed-off-by: IkeMtz <ikemtz@outlook.com> * Update 8.0/debian-10/rootfs/opt/bitnami/scripts/libmysql.sh Co-authored-by: Carlos Rodríguez Hernández <carrodher1179@gmail.com> Signed-off-by: IkeMtz <ikemtz@outlook.com> * Update 5.7/debian-10/rootfs/opt/bitnami/scripts/libmysql.sh Co-authored-by: Carlos Rodríguez Hernández <carrodher1179@gmail.com> Signed-off-by: IkeMtz <ikemtz@outlook.com> * Update 5.7/debian-10/rootfs/opt/bitnami/scripts/libmysql.sh Co-authored-by: Carlos Rodríguez Hernández <carrodher1179@gmail.com> Signed-off-by: IkeMtz <ikemtz@outlook.com> * Update 5.7/debian-10/rootfs/opt/bitnami/scripts/libmysql.sh Co-authored-by: Carlos Rodríguez Hernández <carrodher1179@gmail.com> Signed-off-by: IkeMtz <ikemtz@outlook.com> * Update 8.0/debian-10/rootfs/opt/bitnami/scripts/libmysql.sh Co-authored-by: Carlos Rodríguez Hernández <carrodher1179@gmail.com> Signed-off-by: IkeMtz <ikemtz@outlook.com> * Update 8.0/debian-10/rootfs/opt/bitnami/scripts/libmysql.sh Co-authored-by: Carlos Rodríguez Hernández <carrodher1179@gmail.com> Signed-off-by: IkeMtz <ikemtz@outlook.com> * Update 5.7/debian-10/rootfs/opt/bitnami/scripts/libmysql.sh Co-authored-by: Carlos Rodríguez Hernández <carrodher1179@gmail.com> Signed-off-by: IkeMtz <ikemtz@outlook.com> * 8.0.28-debian-10-r34 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 5.7.37-debian-10-r50 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 8.0.28-debian-10-r35 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 5.7.37-debian-10-r51 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 8.0.28-debian-10-r36 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 5.7.37-debian-10-r52 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 8.0.28-debian-10-r37 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 5.7.37-debian-10-r53 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 8.0.28-debian-10-r38 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 5.7.37-debian-10-r54 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 8.0.28-debian-10-r39 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 5.7.37-debian-10-r55 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 8.0.28-debian-10-r40 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 5.7.37-debian-10-r56 release Signed-off-by: IkeMtz <ikemtz@outlook.com> * 8.0.28-debian-10-r41 release Signed-off-by: IkeMtz <ikemtz@outlook.com> Co-authored-by: Carlos Rodríguez Hernández <carrodher1179@gmail.com> Co-authored-by: Bitnami Bot <containers-bot@bitnami.com> Co-authored-by: Carlos Rodríguez Hernández <carlosrh@vmware.com>
This commit is contained in:
@@ -16,6 +16,7 @@ RUN apt-get update && apt-get upgrade -y && \
|
||||
rm -r /var/lib/apt/lists /var/cache/apt/archives
|
||||
RUN chmod g+rwX /opt/bitnami
|
||||
RUN mkdir /docker-entrypoint-initdb.d
|
||||
RUN mkdir /docker-entrypoint-startdb.d
|
||||
|
||||
COPY rootfs /
|
||||
RUN /opt/bitnami/scripts/mysql/postunpack.sh
|
||||
|
||||
@@ -322,18 +322,18 @@ EOF
|
||||
}
|
||||
|
||||
########################
|
||||
# Run custom initialization scripts
|
||||
# Run custom scripts
|
||||
# Globals:
|
||||
# DB_*
|
||||
# Arguments:
|
||||
# None
|
||||
# $1 - 'init' or 'start' ('init' runs on first container start, 'start' runs everytime the container starts)
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
mysql_custom_init_scripts() {
|
||||
if [[ -n $(find /docker-entrypoint-initdb.d/ -type f -regex ".*\.\(sh\|sql\|sql.gz\)") ]] && [[ ! -f "$DB_DATA_DIR/.user_scripts_initialized" ]] ; then
|
||||
info "Loading user's custom files from /docker-entrypoint-initdb.d";
|
||||
for f in /docker-entrypoint-initdb.d/*; do
|
||||
mysql_custom_scripts() {
|
||||
if [[ -n $(find /docker-entrypoint-"$1"db.d/ -type f -regex ".*\.\(sh\|sql\|sql.gz\)") ]] && { [[ ! -f "$DB_DATA_DIR/.user_scripts_initialized" ]] || [[ $1 = start ]]; } then
|
||||
info "Loading user's custom files from /docker-entrypoint-$1db.d";
|
||||
for f in /docker-entrypoint-"$1"db.d/*; do
|
||||
debug "Executing $f"
|
||||
case "$f" in
|
||||
*.sh)
|
||||
@@ -348,7 +348,7 @@ mysql_custom_init_scripts() {
|
||||
fi
|
||||
;;
|
||||
*.sql)
|
||||
[[ "$DB_REPLICATION_MODE" = "slave" ]] && warn "Custom SQL initdb is not supported on slave nodes, ignoring $f" && continue
|
||||
[[ "$DB_REPLICATION_MODE" = "slave" ]] && warn "Custom SQL $1db is not supported on slave nodes, ignoring $f" && continue
|
||||
wait_for_mysql_access "$DB_ROOT_USER"
|
||||
# Temporarily disabling autocommit to increase performance when importing huge files
|
||||
if ! mysql_execute_print_output "$DB_DATABASE" "$DB_ROOT_USER" "$DB_ROOT_PASSWORD" <<< "SET autocommit=0; source ${f}; COMMIT;"; then
|
||||
@@ -357,7 +357,7 @@ mysql_custom_init_scripts() {
|
||||
fi
|
||||
;;
|
||||
*.sql.gz)
|
||||
[[ "$DB_REPLICATION_MODE" = "slave" ]] && warn "Custom SQL initdb is not supported on slave nodes, ignoring $f" && continue
|
||||
[[ "$DB_REPLICATION_MODE" = "slave" ]] && warn "Custom SQL $1db is not supported on slave nodes, ignoring $f" && continue
|
||||
wait_for_mysql_access "$DB_ROOT_USER"
|
||||
# In this case, it is best to pipe the uncompressed SQL commands directly to the 'mysql' command as extraction may cause problems
|
||||
# e.g. lack of disk space, permission issues...
|
||||
|
||||
@@ -30,7 +30,9 @@ fi
|
||||
# Ensure MySQL is initialized
|
||||
mysql_initialize
|
||||
# Allow running custom initialization scripts
|
||||
mysql_custom_init_scripts
|
||||
mysql_custom_scripts 'init'
|
||||
# Allow running custom start scripts
|
||||
mysql_custom_scripts 'start'
|
||||
# Stop MySQL before flagging it as fully initialized.
|
||||
# Relying only on the trap defined above could produce a race condition.
|
||||
mysql_stop
|
||||
|
||||
Reference in New Issue
Block a user