Docker Docker入口点initdb.d按照定义的顺序执行



我喜欢能够执行sql脚本文件,然后执行
脚本目录,然后执行另一个脚本目录
如果执行docker入口点initdb.d 下映射的内容,我如何控制订单

例如:我有

run_me_first.sql
direcoty_first
a.sql
aa.sql
directory_second
bb.sql

我希望能够执行:
第一个:run_me_First.sql
第二个:direcoty_First->内部脚本顺序无关紧要
第三个:directory_Second->内部脚本顺序无关

使用docker compose映射到docker入口点initdb.d如何控制scripps执行订单

它们应该按照字典顺序(排序、字母顺序(执行;如果您将它们命名为01-bb.sql02-a.sql03-aa.sql,则将是排序。

当容器第一次启动时,postgres映像入口点将在启动时运行的脚本指定为

docker_process_init_files /docker-entrypoint-initdb.d/*

(其中docker_process_init_files是脚本前面定义的shell函数(。当shell扩展此模式时,POSIX.1 shell规范指示

如果模式与任何现有的文件名或路径名匹配,则模式应替换为这些文件名和路径名,并根据当前区域设置中有效的排序顺序进行排序。如果此排序序列没有所有字符的总顺序(请参阅XBD LC_COLLATE(,则应使用POSIX区域设置的排序序列逐字节进一步比较同等排序的任何文件名或路径名。

另一方面,脚本必须直接在/docker-entrypoint-initdb.d目录中,子目录中的安装脚本不会被这种特定的文件名扩展所注意到。

最新更新