在Docker COPY中使用regex表示数字



我试图在docker中复制以下格式的文件

database-20.2.1.zip 

我试过使用下面的东西,但它似乎不起作用

COPY databse-+([0-9]).+([0-9]).+([0-9]).zip /docker-entrypoint-initdb.d/database.zip

是否可以在docker副本中完成?

DockerfileCOPY使用shell globs,而不是正则表达式。实际的实现使用Go的filepath.Match语法。该语法不允许正则表达式所允许的某些组合:您可以匹配任意单个数字[0-9],或任意数量的字符*,但不允许匹配任意数量的数字。

根据你想要接受的文件的严格程度和文件名格式的一致性,以下任何一种都可以工作:

COPY database-[0-9][0-9].[0-9].[0-9].zip ./database.zip
COPY database-*.*.*.zip ./database.zip
COPY database-*.zip ./database.zip
在所有情况下,请注意模式可以匹配构建上下文中的多个文件。如果COPY的右侧是单个文件名(不以/结尾),但glob匹配多个文件,则会得到构建错误。在这种情况下,这可能就是你想要的。

相关内容

  • 没有找到相关文章

最新更新