有没有办法将两个 Docker 基础图像组合在一个容器中并使用 kaniko 构建?

Is there a way to combine two Docker base images in a single container and build with kaniko?

用例是这样的,我需要在一个容器中同时使用 JDK 和 Mongo 图像,java 进程启动 Mongo 守护进程。

您不需要使用两个基础图像。只需使用其中一个基本映像 jdk/mongo,然后使用二进制文件安装 mongo/jdk 在所选基本映像之上。

这是将 JRE 11 烘焙到 mongo 映像的最小 Dockerfile。

FROM mongo:latest

# Replace the version if desired
RUN apt-get update -y && apt-get install openjdk-11-jre-headless -y

# Install your app and stuffs here...

# Override for your own command
CMD ["java","-version"]

构建图像docker build -t mongodb-java .

测试镜像docker run -t --rm mongodb-java会输出JRE版本

测试图像 docker run -t --rm mongodb-java mongo --version 将输出 MongoDB 版本。

然后您可以跟随 Kaniko steps 构建图像。