Docker docker-entrypoint-initdb.d按定义的顺序执行

问题描述 投票:0回答:1

我希望能够执行sql脚本文件,然后脚本目录,然后是另一个脚本目录。如果执行在docker-entrypoint-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-entrypoint-initdb.d的docker-compose映射,我如何控制脚本的执行顺序

我希望能够执行sql脚本文件,然后执行脚本目录,然后再执行脚本目录。如果执行在docker-entrypoint -...下映射的内容,我如何控制顺序?

它们应按字典顺序(按字母顺序排列)执行;如果您将它们命名为01-bb.sql02-a.sql03-aa.sql,则将以此排序。
[当容器第一次启动时,postgres image entrypoint仅指定要在启动时运行的脚本
postgres

((docker_process_init_files /docker-entrypoint-initdb.d/* 是定义为docker_process_init_files的Shell函数)。当外壳扩展此模式时,earlier in the script表示

如果模式与任何现有的文件名或路径名匹配,则应将模式替换为那些文件名和路径名,并根据当前语言环境中有效的整理顺序进行排序。如果此整理序列没有所有字符的总排序(请参阅XBD LC_COLLATE),则应使用POSIX语言环境的整理序列逐字节逐字节比较所有相同整理的文件名或路径名。

另一面是,脚本必须直接位于POSIX.1 shell specification目录中,此特定的文件名扩展不会注意到子目录中的安装脚本。

sql docker
1个回答
1
投票
postgres
© www.soinside.com 2019 - 2024. All rights reserved.