我有一个非常简单的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