首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何配置在不同源代码存储库中管理的特定于docker的映像依赖项

如何配置在不同源代码存储库中管理的特定于docker的映像依赖项
EN

Stack Overflow用户
提问于 2021-03-23 21:46:25
回答 1查看 19关注 0票数 0

如何配置docker特定的工件依赖项,这些依赖项在不同的源代码存储库中进行管理。我的docker镜像依赖于jar文件(比如project-auth)、配置(比如project- which ),这些配置实际上是在与docker镜像不同的存储库中维护的。

在构建镜像之前,复制docker镜像的依赖项(比如project-deploy repo)的最佳方式是什么?也就是说,在上面的例子中,project-deploy需要jar文件和配置,这些文件和配置需要从当前文件夹挂载为卷。

我不希望这被提交,因为依赖关系往往会变得陈旧,我希望docker映像创建成为构建过程本身的一部分。

EN

回答 1

Stack Overflow用户

发布于 2021-03-24 13:58:31

为此,您可以使用Docker多阶段构建。

对于多阶段构建,您可以在Dockerfile文件中使用多个

语句。每个FROM指令可以使用不同的基址,并且它们中的每一个都开始了一个新的构建阶段。您可以有选择地将工件从一个阶段复制到另一个阶段,从而在最终图像中保留您不想要的所有内容。

例如:

假设依赖项的源代码存在于使用多阶段构建的repo - "https://github.com/demo/demo.git“中,您可以创建一个阶段,在其中克隆git代码库,并在运行时创建依赖项Jar (或任何其他需要的内容)。最后,您可以将jar复制到您的最终图像中。

代码语言:javascript
运行
复制
# Use any base image. I took centos here
FROM centos:7 as builder

# Install only those packages which are required.
RUN yum install -y maven git \
&& git clone <YOUR_GIT_REPO_URL>

WORKDIR /myfolder

# Create jar at run time. You can update this step according to your project requirements.
RUN mvn clean package

# From here our normal Dockerfile steps starts.
FROM centos:7

# Add all the necessary steps required to build your image
.
.
.

# This is how you can copy the jar which was created above (Step 4) in your final docker image.
COPY --from=builder SOURCE_PATH DESTINATION_PATH

请参考this以更好地了解docker中的多阶段构建。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66764444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档