docker-library / cassandra

Docker Official Image packaging for Cassandra
Apache License 2.0
262 stars 281 forks source link

Implement initdb.d mechanism similar to mysql/mariadb initialization #201

Closed pazderak closed 4 years ago

pazderak commented 4 years ago

Why

Could be an advantage to have a way how to init DB during container start

How

This patch introduces similar mechanism as MySQL/MariaDB has - when /docker-entrypoint-initdb.d folder is mounted into container, cassandra is started in background and all scripts in given folder are executed. Background process is then stopped and normal startup continues.

yosifkit commented 4 years ago

Unfortunately this is not something we want to add to the cassandra image.

Closing with a similar rationale to #94 -- the proper deployment of Cassandra is clustered, and is much more complicated to get right automatically. It is not recommended to use a standalone deployment, and I fear such a feature would encourage folks to do so (since it couldn't possibly work with a cluster properly and/or detect clustered operation). For folks that really want to go there, building something like that on top of the provided image shouldn't be too much work. 

- https://github.com/docker-library/cassandra/issues/31#issuecomment-426777266

Related to https://github.com/docker-library/cassandra/issues/31, https://github.com/docker-library/cassandra/pull/149, and https://github.com/docker-library/cassandra/issues/182