具有多个基础映像的Dockerfile

我试图创build一个简单的dockerfile,我需要在多个步骤中构build我的nodejs项目:

  • 安装和caching我的依赖关系
  • 运行我的unit testing
  • 运行我的验收testing
  • build立我的项目

确保我的项目运作良好。 这是我现在所拥有的:

FROM node:6.9 # Enviroment variables ENV HOMEDIR /data RUN mkdir -p ${HOMEDIR} WORKDIR ${HOMEDIR} # install all dependencies ADD package.json ./ RUN npm install # ... some stuff goes here without any importance # add node content initially ADD . . CMD CI=true npm test && npm run test:acceptance && npm run build 

在运行我的验收testing时,我使用selenium服务器。 我需要这个java

事实上,我没有安装java,我想使用“标准”图像, 同时保留我当前的节点:6.9图像 ,这将允许我轻松地从版本切换到版本(如https://集线器.docker.com / _ / openjdk / )。 我的意思是,我不想在当前的图像上手动安装JAVA。

我的问题是,我不能在我的dockerfile中使用多个FROM来源,我不知道我是否需要甚至可能。

任何build议?

docker方式是尽可能小和轻量级的图像。 你生产的图像不需要Java,selenium等…

构build和testing应用程序必须在容器之外。 它可以是另一个图像(与selenium,Java等,或build设集群与多个容器,如selenium,Java等)build设生产图像。

我build议你有一个基本的映像,只包含基本的操作系统和你的应用程序运行所需的软件。

使用该基础图像并为不同的testing创build多个图像。 完成所有testing后,请使用相同的基本映像来打包和dockerize您的应用程序。