我正在尝试使用https://docs.docker.com/develop/develop-images/multistage-build/
我需要openjdk 8和高山上的最新熊猫 (我正在安装spark / pyspark)
我最初尝试使用FROM openjdk:8-alpine
,然后安装所有python3 / pandas,但事实证明,在高山地区安装熊猫非常困难,您需要最新的高山docker映像(Installing pandas in docker Alpine)
所以我需要FROM openjdk:8-alpine
和From alpine:latest
我的问题是我如何知道从每个步骤复制哪个目录(?)?
如果我这样做
FROM openjdk:8-alpine
From alpine:latest
我需要从openjdk:8-alpine
如果我撤消了
From alpine:latest
# install panda
FROM openjdk:8-alpine
我需要复制(什么?)
答案 0 :(得分:0)
使用多阶段构建时,通常会在第一阶段创建工件(例如,已编译的应用程序),然后在第二阶段将其复制到更薄的基础映像中。创建最终图像后,第一阶段的所有内容都会被丢弃。
从您的评论中,我认为我了解您需要从同时具有JDK8和最新Alpine的映像开始。多阶段构建在这里无济于事。您最终只会将JDK复制到alpine:latest最后阶段。
我将改为复制原始Dockerfile jdk:8-alpine,将第一行更改为FROM alpine:3.10
并创建自己的基本映像。
如果您需要基于此图像的pyspark,请复制original dockerfile并将第一行FROM openjdk:8
替换为之前创建的基础图像。