Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Templatize and refactor 5.7+ entrypoint scripts #471

Merged
merged 42 commits into from
Oct 10, 2019

Conversation

ltangvald
Copy link
Collaborator

@ltangvald ltangvald commented Aug 7, 2018

Note: May want to split this up, but putting everything in a single request for any discussions that may arise.

Unifies the entrypoint scripts for 5.7 and 8.0, since they do not need to be different at all, and adds them to a debian template that is copied into each directory by update.sh

Also refactors the entrypoint script by moving logic for starting and stopping the server into functions and adding timestamps and error levels to the echo lines.

Closes #490

update.sh Outdated Show resolved Hide resolved
update.sh Outdated
# Copy entrypoint template
templateVersions=( "5.7 8.0" )
for version in ${templateVersions}; do
cp "template.Debian/docker-entrypoint.sh" "${version}/"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's really not a whole lot that's different between these and 5.5/5.6 -- do you think it'd make sense to do some runtime detection and switch behavior in the scripts dynamically in order to hit all four versions? We could also have this script include the nuances for the lower versions and have it dynamically update the template when copying it to the lower versions.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, you're right it's not that much work (we do this at https://github.com/mysql/mysql-docker/blob/mysql-server/gen_dockerfiles.sh).

template.Debian/docker-entrypoint.sh Outdated Show resolved Hide resolved
template.Debian/docker-entrypoint.sh Outdated Show resolved Hide resolved
template.Debian/docker-entrypoint.sh Outdated Show resolved Hide resolved
@tianon
Copy link
Member

tianon commented Sep 5, 2018

@ltangvald is there anything @yosifkit and I can do to help you move this forward and/or support you better? 😄

@ltangvald
Copy link
Collaborator Author

ltangvald commented Sep 6, 2018

Right now it's hanging on me, so only if you can find some more hours in the day :D
But I have some time this week, so will update the PR with the suggestions we've discussed and push it :)

@ltangvald
Copy link
Collaborator Author

Commits should resolve all conversations except the one about adding 5.5 and 5.6 to the template. We have this upstream, but the implementation results in chunks of dead code in the entrypoint scripts of the newer versions: https://github.com/mysql/mysql-docker/blob/mysql-server/5.7/docker-entrypoint.sh#L89.
Do you have any ideas for how to better resolve this? The problem is mostly just the non-daemonize method for starting the server.

I also added one change for storing the root password in a file instead of on the command line, since mysqladmin also needs it.

@tianon
Copy link
Member

tianon commented Sep 20, 2018

So this is ready for review again? Do you want us to wait while you do more work on it (such as consuming #448, MariaDB/mariadb-docker#183, etc)? (Wanting to move this forward if we can 💪)

@ltangvald
Copy link
Collaborator Author

@tianon: Sorry, yes, it was meant to be review-ready :)
However, I also added a "docker" prefix to the function names now (from the discussion at docker-library/postgres#496) plus a small typo fix.

We could add the other issues, but they could just as well be done after, and the templating should make future fixes easier to handle

@ltangvald
Copy link
Collaborator Author

@yosifkit Good if you also take a look at the changes :)

DATADIR="$(docker_get_config 'datadir' "$@")"

if [ ! -d "$DATADIR/mysql" ]; then
docker_file_env 'MYSQL_ROOT_PASSWORD'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not move this block to subroutine as well?

@yosifkit
Copy link
Member

yosifkit commented Oct 2, 2018

My thoughts are along the lines that maybe this doesn't go far enough with functionalizing the entrypoint. This could be separate discussion, but I think if we are going to create functions in the entrypoint that users can use from initidb.d scripts, then we might as well go all the way to providing a consistent well-reasoned interface.

If docker-library/postgres#496 seems reasonable, I'd like to get MySQL (and mariadb + percona) as similar as possible. I am definitely open to suggestions for improvement there; especially if it will make it work better for MySQL. This would allow users more places to hook in customization by sourcing the entrypoint script with their own script without us having to explicitly support more environment variables, an always run initidb.d directory (docker-library/percona#58), or an only run initdb.d (#357, #423).

Where can we collaborate to bring to two ideas closer together? Would defining the function list (and possible arguments) be a good place to start? Here is what i have so far in the postgres rework:

file_env
docker_create_database_dirs
docker_init_database_dir
docker_print_password_warning
docker_process_init_files
# maybe drop the `p`, or use docker_process_sql or something
docker_psql_run
docker_setup_database
docker_setup_env_vars
# there isn't really a MySQL equivalent of this one, so it should probably be unique to postgres
docker_setup_pg_hba
# perhaps these should be a more generic "docker_temporary_sqlserver_start"
docker_temporary_pgserver_start
docker_temporary_pgserver_stop

@tianon
Copy link
Member

tianon commented Oct 17, 2018

Friendly ping @ltangvald ❤️

@ltangvald
Copy link
Collaborator Author

@tianon Working on moving as much logic as possible into functions, as yosifkit suggests :)

@ltangvald
Copy link
Collaborator Author

@tianon @yosifkit I've refactored further to put as much logic as possible into functions. The list is a bit different, but could you look it over and maybe suggest refinements to bring it closer to pg?

@glensc
Copy link
Contributor

glensc commented Oct 18, 2018

@ltangvald there's still rather large block in global scope:

# If this is true then there's no database, and it needs to be initialized
if [ ! -d "$DATADIR/mysql" ]; then
docker_verify_env
docker_init_database_dir "$@"
docker_init_client_command
docker_note "Starting temporary server"
docker_start_server "$@"
# For 5.7+ the server is ready for use as soon as startup command unblocks
if [ "${MYSQL_MAJOR}" = "5.5" ] || [ "${MYSQL_MAJOR}" = "5.6" ]; then
docker_note "Waiting for server startup"
docker_wait_for_server "${mysql[@]}"
fi
docker_note "Temporary server started."
if [ -z "$MYSQL_INITDB_SKIP_TZINFO" ]; then
docker_load_tzinfo
fi
if [ ! -z "$MYSQL_RANDOM_ROOT_PASSWORD" ]; then
docker_generate_root_password
fi
docker_init_root_user
docker_write_password_file
docker_init_database_user
echo
for f in /docker-entrypoint-initdb.d/*; do
docker_process_init_file "$f" "${mysql[@]}"
done
if [ ! -z "$MYSQL_ONETIME_PASSWORD" ]; then
docker_expire_root_user
fi
docker_note "Stopping temporary server"
docker_stop_server
docker_note "Temporary server stopped"
# Remove the password file now that initialization is complete
rm -f "${PASSFILE}"
unset PASSFILE
echo
docker_note "MySQL init process done. Ready for start up."
echo
fi

why not move that into function as well?

@ltangvald
Copy link
Collaborator Author

That block is (almost) the entire script; Overriding it essentially means overriding the entire entrypoint.
But maybe it would be useful to move all the helper functions into a separate file so they would be available for someone who wants to define their own behavior from scratch.

@glensc
Copy link
Contributor

glensc commented Oct 18, 2018

imho the only goal should not be override possibility, but code readability too. moving to function is more compact and allows using local variables.

with that in mind, i tend to write my shell scripts nowadays as:

#!/bin/sh

func() {
  ...
}

main() {
  local foo=$1 bar
  func bar
}

main "$@"

@ltangvald
Copy link
Collaborator Author

Yeah, that's a good point. I've added a docker_main function now (there was also a bug with trying to run anything other than mysqld, as it would still try to fetch server config)

About local variables: I'm on somewhat shaky ground when it comes to bash scoping, but right now the script relies on global variables, e.g. docker_init_env sets DATADIR and SOCKET, which are used in numerous places.

@yosifkit
Copy link
Member

I thought about moving the helper functions to another file for postgres, but instead I just hid the main logic in a function and only run that function when the file is not sourced so that a user can source our one file and then choose which pieces they want to run. That way we don't have to worry about telling users about a second file that they can source to get our init steps.

# check to see if this file is being run or sourced from another script_is_sourced() {
 	# https://unix.stackexchange.com/a/215279
	[ "${FUNCNAME[${#FUNCNAME[@]} - 1]}" == 'source' ]
}
_main() {
	# init logic
}

if !_is_sourced; then
	_main "$@"
}

Do you think this would be good to do in the MySQL image too?

As for function names and usage, i'm still lining up the MySQL ones with the ones I proposed for PostgreSQL Server so that we can get a unified set (plus custom ones for each).

@glensc
Copy link
Contributor

glensc commented Oct 23, 2018

I like that Pythonish is_main check ;)

I think you're supposed to use [['s with ==, or if you want to be POSIX compatible then ['s go with single =.

@tianon
Copy link
Member

tianon commented Nov 1, 2018

I think you're supposed to use [['s with ==, or if you want to be POSIX compatible then ['s go with single =.

It should really drop the == down to just = -- using [[ with == is a Bashism (and is only necessary for glob matching, which is more reliably performed via case xxx in GLOB) ... instead).

(But if we're getting that picky, FUNCNAME isn't acceptable since it's also a Bashism 😆)

@lag-linaro
Copy link

Surely, surely, this is ready to go now.

Last, little, push ...

@tianon
Copy link
Member

tianon commented Oct 10, 2019

Agreed, let's take this across the finish line and dial in anything else in follow-ups. 👍

(I think we've discussed/evaluated the high level bits enough that we're relatively safe.)

@tianon tianon merged commit b5a5d78 into docker-library:master Oct 10, 2019
docker-library-bot added a commit to docker-library-bot/official-images that referenced this pull request Oct 11, 2019
Changes:

- docker-library/mysql@ddf116f: Merge pull request docker-library/mysql#479 from infosiftr/mysql.db-test
- docker-library/mysql@0619155: Update "test" database deletion code with extra query from mysql_secure_installation
- docker-library/mysql@b5a5d78: Merge pull request docker-library/mysql#471 from ltangvald/refactoring
- docker-library/mysql@206541a: Adjust printf to be more resilient; use exit code directly instead of a variable
- docker-library/mysql@91785a5: Add --dont-use-mysql-root-password flag for docker_process_sql
- docker-library/mysql@8d01eea: Fix source detection for centos, call check_config first, explicit global for DATADIR SOCKET
- docker-library/mysql@8a58acb: Adjustments from tianon's comments
- docker-library/mysql@169471f: Apply update.sh to update each entrypoint; drop 5.5 from update.sh
- docker-library/mysql@06acf82: A few entrypoint updates to increase usability
- docker-library/mysql@bbf5d01: Remove empty function docker_wait_for_server
- docker-library/mysql@125ac54: Replace function docker_init_client_command with docker_process_sql
- docker-library/mysql@964f6c2: Merge function docker_load_tzinfo into docker_setup_db
- docker-library/mysql@ce4d14d: Merge function docker_generate_root_password into docker_setup_db
- docker-library/mysql@71962c5: Rename function docker_init_database_dir to docker_create_db_directories
- docker-library/mysql@04b03e0: Merge functions mysql_write_password_file, docker_init_root_user and docker_setup_db_users into docker_setup_db
- docker-library/mysql@880bb34: Rename docker_init_database_user to docker_setup_db_users
- docker-library/mysql@dfa4cb4: Rename docker_expire_root_user to mysql_expire_root_user
- docker-library/mysql@9b90b1c: Move old-mysql-only logic for waiting for server startup into function
- docker-library/mysql@915c792: Rename functions for starting and stopping server
- docker-library/mysql@f1abc95: Rename docker_main to _main
- docker-library/mysql@c9600d2: Rename log functions from docker to mysql
- docker-library/mysql@34ae313: Rename docker_init_env to docker_setup_env
- docker-library/mysql@ae7b623: Rename docker_get_config to mysql_get_config
- docker-library/mysql@5e10737: Rename docker_write_password_file to mysql_write_password_file
- docker-library/mysql@67f2bd3: Rename docker_process_init_file to docker_process_init_files
- docker-library/mysql@1503220: Rename docker_verify_env to docker_verify_minimum_env
- docker-library/mysql@2fcb086: Rename docker_file_env to file_env
- docker-library/mysql@ef9caa9: Rename docker_check_config to mysql_check_config
- docker-library/mysql@9f77ea5: entrypoint: Make value checks more consistent
- docker-library/mysql@33ba3e5: entrypoint: Only execute main function if the script is not sourced
- docker-library/mysql@db2319e: entrypoint: Move main script functionality to function
- docker-library/mysql@f9c185f: entrypoint: Move more logic into functions
- docker-library/mysql@db12713: entrypoint: Use mktemp instead of install
- docker-library/mysql@4672559: Prefix function names in entrypoint with "docker"
- docker-library/mysql@eb2821b: Fix typo templaing->templating
- docker-library/mysql@2242976: Move flag for password file to when the client command is first defined
- docker-library/mysql@03bdbad: Add 5.5 and 5.6 to entrypoint templating
- docker-library/mysql@a9e8576: Template: Use --daemonize for temporary server startup.
- docker-library/mysql@9e51c81: Template: Use mysqladmin to stop temporary server
- docker-library/mysql@ea73775: Template: Store root password in file
- docker-library/mysql@a8aa1cf: Template: Create logging functions
- docker-library/mysql@34f3ef2: Template: Rename template directory to be hidden
- docker-library/mysql@afceb7f: Template: Create functions for starting and stopping server during init
- docker-library/mysql@5a727ad: Make template for 5.7+ entrypoint script
- docker-library/mysql@f16150e: Unify entrypoint scripts for 5.7 and 8.0
- docker-library/mysql@d56d41d: Update generated README
- docker-library/mysql@68f5102: Merge pull request docker-library/mysql#580 from J0WI/https-update
- docker-library/mysql@0f33848: Use https in update.sh
yosifkit added a commit to infosiftr/postgres that referenced this pull request Oct 11, 2019
docker-library-bot added a commit to docker-library-bot/official-images that referenced this pull request Oct 11, 2019
Changes:

- docker-library/mysql@305192d: Merge pull request docker-library/mysql#599 from infosiftr/really_sourced
- docker-library/mysql@2501cf3: Improve _is_sourced check
- docker-library/mysql@ddf116f: Merge pull request docker-library/mysql#479 from infosiftr/mysql.db-test
- docker-library/mysql@0619155: Update "test" database deletion code with extra query from mysql_secure_installation
- docker-library/mysql@b5a5d78: Merge pull request docker-library/mysql#471 from ltangvald/refactoring
- docker-library/mysql@206541a: Adjust printf to be more resilient; use exit code directly instead of a variable
- docker-library/mysql@91785a5: Add --dont-use-mysql-root-password flag for docker_process_sql
- docker-library/mysql@8d01eea: Fix source detection for centos, call check_config first, explicit global for DATADIR SOCKET
- docker-library/mysql@8a58acb: Adjustments from tianon's comments
- docker-library/mysql@169471f: Apply update.sh to update each entrypoint; drop 5.5 from update.sh
- docker-library/mysql@06acf82: A few entrypoint updates to increase usability
- docker-library/mysql@bbf5d01: Remove empty function docker_wait_for_server
- docker-library/mysql@125ac54: Replace function docker_init_client_command with docker_process_sql
- docker-library/mysql@964f6c2: Merge function docker_load_tzinfo into docker_setup_db
- docker-library/mysql@ce4d14d: Merge function docker_generate_root_password into docker_setup_db
- docker-library/mysql@71962c5: Rename function docker_init_database_dir to docker_create_db_directories
- docker-library/mysql@04b03e0: Merge functions mysql_write_password_file, docker_init_root_user and docker_setup_db_users into docker_setup_db
- docker-library/mysql@880bb34: Rename docker_init_database_user to docker_setup_db_users
- docker-library/mysql@dfa4cb4: Rename docker_expire_root_user to mysql_expire_root_user
- docker-library/mysql@9b90b1c: Move old-mysql-only logic for waiting for server startup into function
- docker-library/mysql@915c792: Rename functions for starting and stopping server
- docker-library/mysql@f1abc95: Rename docker_main to _main
- docker-library/mysql@c9600d2: Rename log functions from docker to mysql
- docker-library/mysql@34ae313: Rename docker_init_env to docker_setup_env
- docker-library/mysql@ae7b623: Rename docker_get_config to mysql_get_config
- docker-library/mysql@5e10737: Rename docker_write_password_file to mysql_write_password_file
- docker-library/mysql@67f2bd3: Rename docker_process_init_file to docker_process_init_files
- docker-library/mysql@1503220: Rename docker_verify_env to docker_verify_minimum_env
- docker-library/mysql@2fcb086: Rename docker_file_env to file_env
- docker-library/mysql@ef9caa9: Rename docker_check_config to mysql_check_config
- docker-library/mysql@9f77ea5: entrypoint: Make value checks more consistent
- docker-library/mysql@33ba3e5: entrypoint: Only execute main function if the script is not sourced
- docker-library/mysql@db2319e: entrypoint: Move main script functionality to function
- docker-library/mysql@f9c185f: entrypoint: Move more logic into functions
- docker-library/mysql@db12713: entrypoint: Use mktemp instead of install
- docker-library/mysql@4672559: Prefix function names in entrypoint with "docker"
- docker-library/mysql@eb2821b: Fix typo templaing->templating
- docker-library/mysql@2242976: Move flag for password file to when the client command is first defined
- docker-library/mysql@03bdbad: Add 5.5 and 5.6 to entrypoint templating
- docker-library/mysql@a9e8576: Template: Use --daemonize for temporary server startup.
- docker-library/mysql@9e51c81: Template: Use mysqladmin to stop temporary server
- docker-library/mysql@ea73775: Template: Store root password in file
- docker-library/mysql@a8aa1cf: Template: Create logging functions
- docker-library/mysql@34f3ef2: Template: Rename template directory to be hidden
- docker-library/mysql@afceb7f: Template: Create functions for starting and stopping server during init
- docker-library/mysql@5a727ad: Make template for 5.7+ entrypoint script
- docker-library/mysql@f16150e: Unify entrypoint scripts for 5.7 and 8.0
- docker-library/mysql@d56d41d: Update generated README
- docker-library/mysql@68f5102: Merge pull request docker-library/mysql#580 from J0WI/https-update
- docker-library/mysql@0f33848: Use https in update.sh
docker-library-bot added a commit to docker-library-bot/official-images that referenced this pull request Oct 14, 2019
Changes:

- docker-library/mysql@5fa3526: Update to 5.7.28-1debian9
- docker-library/mysql@49bedb5: Update to 5.6.46-1debian9
- docker-library/mysql@367788b: Update to 8.0.18-1debian9
- docker-library/mysql@305192d: Merge pull request docker-library/mysql#599 from infosiftr/really_sourced
- docker-library/mysql@2501cf3: Improve _is_sourced check
- docker-library/mysql@ddf116f: Merge pull request docker-library/mysql#479 from infosiftr/mysql.db-test
- docker-library/mysql@0619155: Update "test" database deletion code with extra query from mysql_secure_installation
- docker-library/mysql@b5a5d78: Merge pull request docker-library/mysql#471 from ltangvald/refactoring
- docker-library/mysql@206541a: Adjust printf to be more resilient; use exit code directly instead of a variable
- docker-library/mysql@91785a5: Add --dont-use-mysql-root-password flag for docker_process_sql
- docker-library/mysql@8d01eea: Fix source detection for centos, call check_config first, explicit global for DATADIR SOCKET
- docker-library/mysql@8a58acb: Adjustments from tianon's comments
- docker-library/mysql@169471f: Apply update.sh to update each entrypoint; drop 5.5 from update.sh
- docker-library/mysql@06acf82: A few entrypoint updates to increase usability
- docker-library/mysql@bbf5d01: Remove empty function docker_wait_for_server
- docker-library/mysql@125ac54: Replace function docker_init_client_command with docker_process_sql
- docker-library/mysql@964f6c2: Merge function docker_load_tzinfo into docker_setup_db
- docker-library/mysql@ce4d14d: Merge function docker_generate_root_password into docker_setup_db
- docker-library/mysql@71962c5: Rename function docker_init_database_dir to docker_create_db_directories
- docker-library/mysql@04b03e0: Merge functions mysql_write_password_file, docker_init_root_user and docker_setup_db_users into docker_setup_db
- docker-library/mysql@880bb34: Rename docker_init_database_user to docker_setup_db_users
- docker-library/mysql@dfa4cb4: Rename docker_expire_root_user to mysql_expire_root_user
- docker-library/mysql@9b90b1c: Move old-mysql-only logic for waiting for server startup into function
- docker-library/mysql@915c792: Rename functions for starting and stopping server
- docker-library/mysql@f1abc95: Rename docker_main to _main
- docker-library/mysql@c9600d2: Rename log functions from docker to mysql
- docker-library/mysql@34ae313: Rename docker_init_env to docker_setup_env
- docker-library/mysql@ae7b623: Rename docker_get_config to mysql_get_config
- docker-library/mysql@5e10737: Rename docker_write_password_file to mysql_write_password_file
- docker-library/mysql@67f2bd3: Rename docker_process_init_file to docker_process_init_files
- docker-library/mysql@1503220: Rename docker_verify_env to docker_verify_minimum_env
- docker-library/mysql@2fcb086: Rename docker_file_env to file_env
- docker-library/mysql@ef9caa9: Rename docker_check_config to mysql_check_config
- docker-library/mysql@9f77ea5: entrypoint: Make value checks more consistent
- docker-library/mysql@33ba3e5: entrypoint: Only execute main function if the script is not sourced
- docker-library/mysql@db2319e: entrypoint: Move main script functionality to function
- docker-library/mysql@f9c185f: entrypoint: Move more logic into functions
- docker-library/mysql@db12713: entrypoint: Use mktemp instead of install
- docker-library/mysql@4672559: Prefix function names in entrypoint with "docker"
- docker-library/mysql@eb2821b: Fix typo templaing->templating
- docker-library/mysql@2242976: Move flag for password file to when the client command is first defined
- docker-library/mysql@03bdbad: Add 5.5 and 5.6 to entrypoint templating
- docker-library/mysql@a9e8576: Template: Use --daemonize for temporary server startup.
- docker-library/mysql@9e51c81: Template: Use mysqladmin to stop temporary server
- docker-library/mysql@ea73775: Template: Store root password in file
- docker-library/mysql@a8aa1cf: Template: Create logging functions
- docker-library/mysql@34f3ef2: Template: Rename template directory to be hidden
- docker-library/mysql@afceb7f: Template: Create functions for starting and stopping server during init
- docker-library/mysql@5a727ad: Make template for 5.7+ entrypoint script
- docker-library/mysql@f16150e: Unify entrypoint scripts for 5.7 and 8.0
- docker-library/mysql@d56d41d: Update generated README
- docker-library/mysql@68f5102: Merge pull request docker-library/mysql#580 from J0WI/https-update
- docker-library/mysql@0f33848: Use https in update.sh
@lag-linaro
Copy link

👏

yosifkit added a commit to infosiftr/mariadb that referenced this pull request Oct 31, 2019
yosifkit added a commit to infosiftr/mariadb that referenced this pull request Oct 31, 2019
docker-library-bot added a commit to docker-library-bot/official-images that referenced this pull request Nov 15, 2019
Changes:

- docker-library/postgres@5beb1d4: Update to 9.4.25-1.pgdg90+1
- docker-library/postgres@a0ec4f5: Update to 9.5.20
- docker-library/postgres@6dfdc0e: Update to 11.6
- docker-library/postgres@2addeda: Update to 11.6-1.pgdg90+1
- docker-library/postgres@f13fbe5: Update to 9.6.16-1.pgdg90+1
- docker-library/postgres@f2596e6: Update to 10.11-1.pgdg90+1
- docker-library/postgres@c1e547b: Update to 10.11
- docker-library/postgres@cac7a60: Update to 9.6.16
- docker-library/postgres@1d43a9d: Update to 12.1
- docker-library/postgres@06a831c: Update to 9.5.20-1.pgdg90+1
- docker-library/postgres@138e959: Update to 9.4.25
- docker-library/postgres@4a82eb9: Update to 12.1-1.pgdg100+1
- docker-library/postgres@0c29c35: Merge pull request docker-library/postgres#496 from infosiftr/functionalization
- docker-library/postgres@8fada98: Fixes from tianon's review
- docker-library/postgres@7c84645: Apply update.sh for new entrypoint
- docker-library/postgres@d1cc089: Improve _is_sourced check
- docker-library/postgres@6e85168: Resync function interfaces with MySQL, improve comments
- docker-library/postgres@2e70e71: Apply function name changes as discussed in docker-library/mysql#471
- docker-library/postgres@49fb876: Namespace functions for less conflict when sourced
- docker-library/postgres@48f2ad1: Functionalize the entrypoint to allow outside sourcing for extreme customizing of startup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

added .cnf affects image initialization
7 participants