我可以在Kubernetes中创建具有问题的卷的PostgresSQL部署。我的问题是如何创建数据库表。
我可以轻松地在Pod中执行并创建表,但是我希望它可以自动创建。
我不想像通用映像那样内置在Docker映像中。
我曾考虑过一些选项,例如Kubernetes Batch Job只运行一次,但不确定最好的方法是什么?
谢谢。
您有多种选择:
postgresql docker image正式州(“初始化脚本”部分:]
If you would like to do additional initialization in an image derived from this one, add one or more *.sql, *.sql.gz, or *.sh scripts under /docker-entrypoint-initdb.d
那些脚本仅在创建数据库时运行。例如,如果您使用包含一个现有数据库的数据卷来启动/重新启动Pod,则这些脚本将不会启动。
使用kubernetes,您可以为configmap提供所需的文件(如果文件大小小于1Mb),或者为卷提供初始化文件。
另一个选择可以是应用程序本身。例如,您可以使用嵌入到应用程序中的flywayDB或liquibase(springboot透明地执行此操作)。