Pandas Docker多级构建、python和java
我想用 我需要openjdk 8和阿尔卑斯山上最新的熊猫 (我正在安装spark/pyspark) 我最初尝试使用openjdk:8-alpine中的Pandas Docker多级构建、python和java,pandas,docker,alpine,Pandas,Docker,Alpine,我想用 我需要openjdk 8和阿尔卑斯山上最新的熊猫 (我正在安装spark/pyspark) 我最初尝试使用openjdk:8-alpine中的,然后安装所有python3/pandas,但结果证明在alpine中安装pandas相当困难,您需要最新的alpine docker映像() 所以我需要openjdk:8-alpine的和alpine:latest的 我的问题是,如何知道每个步骤要从中复制哪个目录(?) 如果我这样做 FROM openjdk:8-alpine From alpi
,然后安装所有python3/pandas,但结果证明在alpine中安装pandas相当困难,您需要最新的alpine docker映像()
所以我需要openjdk:8-alpine的和alpine:latest的
我的问题是,如何知道每个步骤要从中复制哪个目录(?)
如果我这样做
FROM openjdk:8-alpine
From alpine:latest
我需要从openjdk:8-alpine
如果我倒过来
From alpine:latest
# install panda
FROM openjdk:8-alpine
我需要复制(什么??)当您使用多阶段构建时,您通常会在第一阶段创建一个人工制品(例如一个已编译的应用程序),然后在第二阶段将其复制到更薄的基础图像。创建最终图像时,从第一阶段开始的所有内容都将被丢弃
从您的评论中,我想我理解您需要从一个既有JDK8又有最新版本的图像开始。多阶段构建在这里没有帮助。您最终只需将JDK复制到alpine:latest final阶段
我将复制原始Dockerfile,将第一行从alpine:3.10更改为,并创建自己的基本映像
如果您需要基于此映像的pyspark,请复制openjdk:8中的第一行,并将其替换为以前创建的基本映像。我认为您需要在映像上手动安装JDK,在您的情况下,多级将没有帮助。这应该有帮助:顺便说一句,即使您能够在openjdk:8-alpine
中复制所有python/pandas库,您将如何使用它们?在最终图像中,它们仍然需要python
二进制文件,对吗?在同一图像中需要这两个文件有什么具体原因吗?如果在不同的程序中有两个应用程序组件,典型的做法是在两个不同的容器中运行它们,并在它们之间使用网络调用(如HTTP)。@eugene一般规则是每个容器只运行一个应用程序,即使它们在同一堆栈上(例如:两个java应用程序)。可以在一个容器上运行多个应用程序,但这也很复杂。看见