我有一个简单的AngularJS应用程序。后端可以被视为服务(外部api),因此根本不需要服务器端。我想在docker上运行它,但是我不确定这里的最佳实践是什么。
我期望达到以下目标:
真正的问题是,据我了解,开发docker应该基于具有已挂载卷和所有内容的nodejs。.然而,生产docker应该是提供静态内容的 super 简单nginx服务器。所以我可能最终会得到两个使用相同代码库的独立docker。不知道这是否是正确的方法。
任何人都可以对这个话题有所了解吗?谢谢
最佳答案
您的想法似乎还可以。我通常创建一个bash脚本(就我而言,它足够灵活)以根据需求(dev&prod)部署不同的环境。
假设创建了一个bash脚本deployApp.sh
sh deployApp.sh `{dev or prod}`
因此,您还可以根据您的环境动态创建(或切换)Dockerfile,并使用此Dockerfile构建应用程序。因此,您可以分别管理所需的产品环境要求(仅使用webpack创建的 bundle 包等部署到nginx)。
有关创建deployApp.sh的示例:
webpack `{if other required parameters here}` #created bundle.js etc.
#After webpack operations , choose Dockerfile for prod or dev :
#./prod/Dockerfile , ./dev/Dockerfile
#check if first parameter is prod or dev
docker build -f ./prod/Dockerfile #this will build nginx based container
#and copy needed files&folders
那只是根据您的想法的一种方法,我也使用这种方法。您只需一次创建该设置。如果合适,您也可以申请其他项目。