我试图在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匹配多个文件,则会得到构建错误。在这种情况下,这可能就是你想要的。