Regex 如何在Dockerfile中使用带复制函数的正则表达式

Regex 如何在Dockerfile中使用带复制函数的正则表达式,regex,dockerfile,Regex,Dockerfile,我需要使用docker部署一个应用程序,我正在使用Dockerfile。下面你可以找到我的Dockerfile # The image is internal, so I only added the rhel:7 part of it FROM rhel:7 RUN yum install -y java-1.8.0-openjdk.x86_64 VOLUME /tmp COPY "my-application-[0-9\.]*(-SNAPSHOT)?\.jar" my-application

我需要使用docker部署一个应用程序,我正在使用Dockerfile。下面你可以找到我的Dockerfile

# The image is internal, so I only added the rhel:7 part of it
FROM rhel:7
RUN yum install -y java-1.8.0-openjdk.x86_64
VOLUME /tmp
COPY "my-application-[0-9\.]*(-SNAPSHOT)?\.jar" my-application.jar
ENTRYPOINT ["java","-Xms256m","-Xmx512m","-Djavax.net.ssl.trustStore=/var/run/spring/config/cacerts","-Djava.security.egd=file:/dev/urandom","-jar","my-application.jar"]
EXPOSE 8080 8443
构建过程创建的文件的格式为
my-application-1.2.3.jar
my-application-1.2.3-SNAPSHOT.jar
,在该文件旁边还生成了一个源文件,
my-application-1.2.3-sources.jar
。所以我只想复制
my-application-1.2.3.jar

我使用虚拟文件尝试的正则表达式是:
my application-[0-9\.]*(-SNAPSHOT)?\.jar

我已经尝试了以下方法,但没有成功:

  • COPY*.jar我的应用程序.jar
  • RUN/bin/bash-c'find-iregex“\.\/my-application-[0-9\.]*(-SNAPSHOT)?\.jar”-exec cp{}my-application.jar\;”

  • 我有非常基本的Java经验,但我需要使用docker部署此应用程序。

    COPY
    不支持正则表达式。我的建议是修复构建过程,使其产生可用的输出。实际上,我们只是在Jenkins构建脚本中筛选文件,然后只使用
    COPY*.jar My application.jar