具有多个基础映像的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您的应用程序。
- Dockerfile VOLUME定义来挂载项目树
- 添加package.json并在构builddocker镜像时安装被视为两个不同图层的模块?
- Docker:在Dockerfile中设置容器名称
- 无法在Docker容器中打开Firefox
- 如何正确地删除以前提交的图像,以便从头开始构build
- 在尝试删除windowsfilter文件夹后,Docker不会再build立
- 为什么当我向mysql dockerfile中添加`RUN ln -sf / dev / stderr / var / log / mysql / error.log`会中止?
- 看不到Docker容器的输出
- 由于未安装<必需插件“org.jetbrains.plugins.remote-run”,导致Intellij Idea CE 2016.1的Docker插件安装失败。