我现在有一些 Dockerfile。
一个用于 Cassandra 3.5,它是 FROM cassandra:3.5
我也有一个用于 Kafka 的 Dockerfile,但它要复杂得多。它是 FROM java:openjdk-8-fre
它运行一个很长的命令来安装 Kafka 和 Zookeeper。
最后,我有一个使用 SBT 的 Scala 编写的应用程序。
对于那个 Dockerfile,它是 FROM broadinstitute/scala-baseimage
,它得到了我需要的 Java 8、Scala 2.11.7 和 STB 0.13.9。
也许,我不明白 Docker 是如何工作的,但是我的 Scala 程序将 Cassandra 和 Kafka 作为依赖项,出于开发目的,我希望其他人能够简单地使用 Dockerfile
克隆我的存储库,然后能够使用 Cassandra、Kafka、Scala、Java 和 SBT 构建它,这样他们就可以编译源代码。不过,我对此有很多问题。
如何组合这些 Dockerfile?我如何简单地制作一个包含这些东西的环境?
原文由 David 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 Docker 1.17 中引入的 多阶段构建 功能
看看这个:
然后正常构建镜像:
来自: https ://docs.docker.com/develop/develop-images/multistage-build/