带有泊坞窗的角度应用程序 - 生产和销售发展

时间:2016-12-19 09:41:40

标签: angularjs node.js nginx docker docker-compose

我有一个简单的AngularJS应用程序。后端可以像服务(外部api)一样对待,因此根本不需要服务器端。我想在码头上运行它,但是,我不确定这里的最佳做法是什么。 我期望实现的目标如下:

  1. docker应该能够运行我在本地使用nodejs做的所有事情 - 使用webpack / grunt / gulp而不需要在我的本地机器上安装任何东西+确保每个团队成员都在使用相同版本的基本上所有东西。
  2. docker应该能够轻松地部署到生产环境并尽可能轻松地运行(它只是静态内容!)
  3. 真正的问题是,据我所知,dev docker应该基于具有已安装卷和所有内容的nodejs。但是,生产docker应该是提供静态内容的超级简单的nginx服务器。所以我最终会得到一个使用相同代码库的2个独立码头工具。不确定这是不是正确的方法..

    任何人都可以对这个话题有所了解吗?感谢

1 个答案:

答案 0 :(得分:1)

你的想法似乎没问题。我通常创建一个bash脚本(对我而言足够灵活),根据需求(dev& prod)部署不同的环境。

假设创建了一个bash脚本deployApp.sh

sh deployApp.sh `{dev or prod}`

因此,您还可以根据您的环境动态创建(或切换)Dockerfile,并使用此Dockerfile构建您的应用程序。因此,您可以分别管理您的产品环境要求(仅使用webpack&n;创建的捆绑包等部署到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

根据你的想法,这只是一种方法,我也喜欢这种方法。您只需创建一次该设置。如果合适,您还可以申请其他项目。