Travis CI Build to deploy on Cloud Foundry fails



我正在尝试在Cloudfoundry上部署python Flask应用程序,但它失败了。 它显示输出

应用程序无法映射到路由 hello.cfapps.io,因为路由存在于不同的空间中。

请找到错误的屏幕截图

这是我的travis.yml的样子:

stages:
- test
- deploy
language: python
python:
- '3.6'
env:
- PORT=8080
cache: pip
script: python hello.py &
jobs:
include:
- stage: test
install:
- pip install -r requirements.txt
- pip install -r tests/requirements_test.txt
script:
- python hello.py &
- python tests/test.py
- stage: deploy
deploy:
provider: cloudfoundry
username: vaibhavgupta0702@gmail.com
password:
secure: myencrytedpassword
api: https://api.run.pivotal.io
organization: Hello_Flask
space: development
on:
repo: vaibhavgupta0702/flask_helloWorld

这是我的 manifest.yml 文件的样子

---
applications:
- name: hello
memory: 128M
buildpacks:
-  https://github.com/vaibhavgupta0702/flask_helloWorld.git
command: python hello.py &
timeout: 60
env:
PORT: 8080

我不明白为什么会出现错误。任何帮助将不胜感激。

无法将应用程序映射到路由 hello.cfapps.io,因为路由存在于不同的空间中。

这正是它所说的意思。域名cfapps.io是一个共享域名,可供平台上的许多人使用。当您看到此错误时,它告诉您使用该平台的其他人已经推送了使用该路由的应用程序。

这里有几种可能性:

  1. 路由的范围限定为空间。如果您有多个空间,则相关路径可能被其他空间中的应用程序使用。您可以做的是运行cf routes --orglevel.这将列出组织下所有空间中的所有路由。如果您看到路由hello列在其中一个空间下,只需在路由所在的空间中运行cf delete-route cfapps.io --hostname hello即可。这将删除它。然后再次部署。

  2. 其他人正在使用该路由。这意味着它将在另一个组织和空间中,在那里你看不到它被使用。在这种情况下,您无能为力。您只需要选择其他路由或使用自定义的私有域(请注意,自定义私有域要求您注册域名并配置DNS,如此处所述(。

    您可以通过几种方式选择另一条路线。

    • 使用随机路由。这适用于测试,但不适用于您想要一致地址的任何内容。要使用,只需将random-route: true添加到清单中即可。

    • 更改应用名称。默认情况下,分配给应用的路由将为<app-name>.<default-domain>。因此,你会得到hello.cfapps.io,因为hello是你的应用程序名称,cfapps.io是PWS上的默认域。如果将应用名称更改为唯一名称,则会产生其他人不使用的唯一路由。

    • 具体定义一个或多个路由。您可以在 manifest.yml 文件中执行此操作。您需要添加一个routes:块,然后添加一个或多个路由。

      例:

      ---
      ...
      routes:
      - route: route1.example.com
      - route: route2.example.com
      - route: route3.example.com
      

相关内容

  • 没有找到相关文章