在多阶段docker文件中重复使用CLI安装

时间:2020-05-30 00:09:59

标签: docker

我正在编写一个多阶段的Dockerfile。第一步是安装cli:

FROM python:3 as cfngenerate

RUN pip install cloudformation-cli

第二步是使用maven构建Java项目。此构建依赖于上面的CLI。

FROM maven as build

COPY --from=cfngenerate /usr/local/bin/cfn /usr/local/bin/cfn

RUN mvn package

但这不起作用。 Maven步骤失败,并显示:java.io.IOException: Cannot run program "cfn-cli": error=2, No such file or directory

如何确保第二步中的CLI可用?

我认为更普遍的问题是,我如何一步一步依赖两个框架(Maven和python CLI)?

1 个答案:

答案 0 :(得分:1)

您有2个“ FROM”表示两个单独的图像。如果您同时需要两个框架,则没有什么选择

  1. 使用基本的docker映像,然后安装python和maven
  2. 使用python映像,然后安装maven。您需要对maven进行必要的设置。
  3. 使用maven映像,然后安装python。您需要对python进行必要的设置。
  4. 查找已安装python和maven并已由他人共享的映像。 (例如https://hub.docker.com/r/openkbs/jre-mvn-py3)。它可能包括不必要的东西。