在Cloud Foundry中部署Angular应用程序

时间:2018-05-02 07:00:47

标签: angular deployment cloudfoundry

我正在尝试在Cloud Foundry中部署我的Angular应用程序。

使用ng serve进行本地测试后,我确认我的应用程序运行良好。

以下是我在CF中部署的步骤:

  1. 在已执行ng build --prod的应用目录中创建了dist文件夹“

  2. 将dist文件夹复制到其他目录并创建manifest.yml文件,其中包含以下内容:(yml文件和dist文件夹位于同一目录中)

    applications:
    
    name: deploy-ng4
    
    memory: 128M
    
      buildpack: https://github.com/cloudfoundry/staticfile-buildpack.git
    
      path: dist
    
  3. 已执行

    cf push deploy-ng4 -m 128M -b https://github.com/cloudfoundry/staticfile-buildpack.git
    
  4. CF日志显示部署的服务正在运行,我没有看到任何错误。

  5. 当我尝试浏览cf apps中为此部署的应用程序列出的网址时,它显示403 - 禁止访问。

2 个答案:

答案 0 :(得分:1)

您使用的是错误的buildpack。 Cloud Foundry内置了对NodeJS的支持,因此如果您的应用包含package.json文件,您可以发出以下命令:

cf push <APP> -m <Memory> .

NodeJS buildpack是开源的,托管在:https://github.com/cloudfoundry/nodejs-buildpack,所以你可以自定义buildpack并推送它:

cf push <APP> -m <Memory> -b 'https://github.com/cloudfoundry/nodejs-buildpack'

同时检查cf help push以查看所有参数选项等。

顺便说一句,如果NodeJS的版本与buildpack中的默认版本不匹配,则必须在package.json中明确设置版本号。 See the document

答案 1 :(得分:0)

可能已经解决了,但是对于面临类似问题的人们来说:检查outputPath文件中的angular.json属性。对于这种情况,必须为:

"outputPath": "dist"

我在PCF部署中遇到了类似的问题。我使用IntelliJ Idea生成了Angular应用程序,它已将项目名称附加到outputPath。然后我得到了403-禁止访问PCF为该服务提供的URL,因为正确的URL带有/projectname附录。