gpt4 book ai didi

maven - 在 Dockerfile 中包含一个 Maven Artifact

转载 作者:行者123 更新时间:2023-12-02 18:43:36 24 4
gpt4 key购买 nike

我们需要在 Dockerfile 中包含一个 Maven Artifact (一个 jar 文件)。这个 jar 文件在我们应用程序的运行命令中用作参数。在构建目录中不存在而仅存在于本地 maven 存储库中的 Dockerfile 中复制 maven Artifact 的正确方法是什么?我发现由于 maven Artifact 不会在构建上下文中,因此复制它的唯一方法是从容器的 .m2 目录(.m2 目录包含所有 maven Artifact )。这是正确的还是有更好的方法?
谢谢

最佳答案

您可以通过在创建它时将 jar 复制到您的图像来做到这一点。

这是一个例子。假设您想使用 Quava jar,并且它已经在您的 POM 中列为依赖项。

创建 Makefile在你的根项目(你有你的 POM.xml 的地方),

create_image: Dockerfile build
docker build . -t myimage:mytag

build: POM.xml
mvn clean install

在同一目录中创建 Dockerfile:
FROM centos
COPY ~/.m2/repository/com/google/guava/14.0.1/guava.jar /
CMD ["sh run.sh", "/quava.jar']

只需使用以下方法创建您的图像:
make create_image

关于maven - 在 Dockerfile 中包含一个 Maven Artifact ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59228202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com