我有一个简单的AngularJS应用程序。后端可以被视为服务(外部api),因此根本不需要服务器端。我想在docker上运行它,但是我不确定这里的最佳实践是什么。
我期望达到以下目标:

  • , docker 应该能够在nodejs上运行我在本地执行的所有操作-使用webpack / grunt / gulp,而无需在本地计算机上安装任何程序,并确保每个团队成员都在使用相同版本的基本版本。
  • 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
    

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

  • 10-08 04:49