我正在尝试为使用grunt / gulp部署在docker容器内的nodejs应用程序的构建过程确定一种好的做法。
我对以下顺序感到非常满意:
但是在我发现的每个示例中,我看到了不同的方法:
IMO,第一种方法生成的容器更轻便,效率更高,但是所有示例都在使用第二种方法。我想念什么吗?
最佳答案
我看到的唯一区别是,您可以使用第二种方法来复制完整的grunt安装。
对于第一个,您将依赖于可能在不同环境下以不同方式执行的本地操作。
容器应基于易于复制的镜像,而不是依赖包含“需要什么”的主机文件夹(不知道该部分的完成方式)
如果安装附带的构建环境开销太大,对于grunt镜像而言,则可以:
app.tar
”(I did that for Apache, that I had to recompile,创建deb package in a shared volume)。就您而言,您可以为已安装的应用程序创建一个存档('tar')。
docker run --it --name=app.inst --volumes-from=app.tar ubuntu untar /shared/path/app.tar
docker commit app.inst app
然后最终结果是一个图像,其中应用程序存在于其文件系统中。
这是您的方法1和2的混合。