Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas Docker多级构建、python和java_Pandas_Docker_Alpine - Fatal编程技术网

Pandas Docker多级构建、python和java

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

我想用

我需要openjdk 8和阿尔卑斯山上最新的熊猫 (我正在安装spark/pyspark)

我最初尝试使用openjdk:8-alpine中的
,然后安装所有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应用程序)。可以在一个容器上运行多个应用程序,但这也很复杂。看见