Docker 多阶段构建,python 和 java
Docker multistage build, python and java
我正在尝试使用 https://docs.docker.com/develop/develop-images/multistage-build/
我需要 openjdk 8 和最新的 panda on alpine
(我正在安装 spark / pyspark)
我最初尝试使用 FROM openjdk:8-alpine
然后安装所有 python3 / pandas ,但事实证明安装 pandas 在 alpine 中相当困难,你需要最新的 alpine docker 图片 ()
所以我需要 FROM openjdk:8-alpine
和 From alpine:latest
我的问题是我如何知道从每个步骤复制哪个目录(?)?
如果我这样做
FROM openjdk:8-alpine
From alpine:latest
我需要从 openjdk:8-alpine
复制 java8 相关内容
如果我做反向
From alpine:latest
# install panda
FROM openjdk:8-alpine
我需要副本(什么??)
当您使用多阶段构建时,您通常会在第一阶段创建一个工件(例如编译的应用程序),然后在第二阶段将其复制到更精简的基础映像。创建最终图像时,第一阶段的所有内容都会被丢弃。
根据您的评论,我想我明白您需要从同时具有 JDK8 和最新的 alpine 的图像开始。多阶段构建在这里无济于事。您最终只会将 JDK 复制到 alpine:latest 最后阶段。
我会复制原始 Dockerfile jdk:8-alpine,将第一行更改为 FROM alpine:3.10
并创建您自己的基础映像。
如果您需要基于此映像的 pyspark,请复制 original dockerfile 并将第一行 FROM openjdk:8
替换为您之前创建的基本映像。
我正在尝试使用 https://docs.docker.com/develop/develop-images/multistage-build/
我需要 openjdk 8 和最新的 panda on alpine (我正在安装 spark / pyspark)
我最初尝试使用 FROM openjdk:8-alpine
然后安装所有 python3 / pandas ,但事实证明安装 pandas 在 alpine 中相当困难,你需要最新的 alpine docker 图片 (
所以我需要 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
我需要副本(什么??)
当您使用多阶段构建时,您通常会在第一阶段创建一个工件(例如编译的应用程序),然后在第二阶段将其复制到更精简的基础映像。创建最终图像时,第一阶段的所有内容都会被丢弃。
根据您的评论,我想我明白您需要从同时具有 JDK8 和最新的 alpine 的图像开始。多阶段构建在这里无济于事。您最终只会将 JDK 复制到 alpine:latest 最后阶段。
我会复制原始 Dockerfile jdk:8-alpine,将第一行更改为 FROM alpine:3.10
并创建您自己的基础映像。
如果您需要基于此映像的 pyspark,请复制 original dockerfile 并将第一行 FROM openjdk:8
替换为您之前创建的基本映像。