使用COPY --from覆盖容器中的二进制文件

时间:2020-04-14 19:06:12

标签: docker

我有一个非常简单的Docker映像,其中应同时包含NodeJS和OpenJDK(用于构建Cordova应用程序)。

到目前为止,一切正常,版本正确,命令行知道所有二进制文件。

但是,当我使用多阶段构建时,来自Alpine的最后一个图像无法找到APK命令(程序包管理器),因此我需要它。

我当前的Dockerfile是

FROM node:current-slim AS node
COPY --from=openjdk:latest . .

FROM alpine:latest

COPY --from=node . . 

ENV JAVA_HOME=/usr/java/openjdk-14

WORKDIR /usr/src/app

RUN npm i -g @angular/cli cordova

CMD ["bash"]

当我尝试运行

apk add unzip

错误bash: apk: command not found弹出。

运行

docker run -it --rm alpine:latest

允许我使用APK。

似乎二进制文件已被覆盖,我不能再使用它们了。

有没有办法做到这一点? (我是Docker的新手)

我的要求是,在运行docker run -it --rm --name myContainer myImage时,以下命令可以正常运行:

npm -v
node -v
java -version
apk --help

0 个答案:

没有答案