在多阶段docker文件中重新使用CLI安装
我正在写一个多阶段的Dockerfile。第一步是安装cli:在多阶段docker文件中重新使用CLI安装,docker,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步骤失败
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:无法运行程序“cfn cli”:错误=2,没有此类文件或目录
如何确保CLI在第二步中可用
我认为更一般的问题是,如何在一个步骤中依靠两个框架(Maven和python CLI)?您有2个“FROM”表示两个独立的映像。如果您需要这两种框架,那么几乎没有选择
您的
mvn包
需要一个cfn cli
可执行文件,但您复制了cfn
。是否有任何cfn cli
可以复制到另一个阶段?@AliTou是的,也复制了它,以及Python安装。现在我得到了/usr/local/bin/python:加载共享库时出错:libpython3.8.so.1.0:无法打开共享对象文件:没有这样的文件或目录
它说它需要缺少一个共享库,复制的可执行文件不足以启动该程序(它需要的可能不止这一个共享库。因此复制所有共享库是不值得的)。我认为这里的多阶段方法不起作用。我建议下面的建议。最后使用了#3。感谢您的帮助:)