在docker文件中使用2:alpine java python和python3删除已安装的java?
在我的项目中,我需要java和python3。 我在Dockerfile中使用了2个FROM语句在docker文件中使用2:alpine java python和python3删除已安装的java?,java,python-3.x,docker,alpine,Java,Python 3.x,Docker,Alpine,在我的项目中,我需要java和python3。 我在Dockerfile中使用了2个FROM语句 FROM docker.<xx>.com/alpine-java-python ...... ...... FROM python3 ...... ...... CMD [ "java", "-jar", "abc.jar"] 来自docker..com/alpine java python的 ...... ...... 从蟒蛇3 ...... ...... CMD[“java”、“-
FROM docker.<xx>.com/alpine-java-python
......
......
FROM python3
......
......
CMD [ "java", "-jar", "abc.jar"]
来自docker..com/alpine java python的
......
......
从蟒蛇3
......
......
CMD[“java”、“-jar”、“abc.jar”]
在容器启动时,它给出“未找到java命令”。
为什么在使用FROM python3时会删除已安装的java?首先,要回答为什么在使用“FROM python3”时会删除已安装的java的问题: 各国: FROM可以在单个Dockerfile中多次出现,以创建多个映像,或将一个构建阶段用作另一个构建阶段的依赖项……每条FROM指令都会清除以前的指令创建的任何状态 所以现在发生的事情是,您的第二个“FROM”写在第一个“FROM”中所做的事情之上,这就是为什么您在最后的图像中看不到Java 现在,要回答一个隐含的问题,如何解决这个问题 由于您希望在单个映像中包含所有这些包,因此您需要:
FROM docker.<xx>.com/alpine-java-python
RUN apk update && apk add python3
......
......
......
......
CMD [ "java", "-jar", "abc.jar"]
来自docker..com/alpine java python的
运行apk更新和apk添加python3
......
......
......
......
CMD[“java”、“-jar”、“abc.jar”]
请注意,如果基本映像中存在python2,那么现在将安装这两个版本,并且您将希望在运行应用程序时引用python3版本,或者更改默认版本