Search code examples
dotcloud

Could not parse dotcloud.yml


I did not even touch dotcloud.yml since the last push but got this weird error when trying to push now:

Could not parse dotcloud.yml: Invalid characters (lowercase alphanum only) for service "rails_production" in "dotcloud.yml", line 6, column 3

I am pretty sure only lowercase alphanum is used in dotcloud.yml. Any advice?


dotcloud.yml file as requested:

rails:
  type: ruby
  approot: rails

rails_production:
  type: mysql

html5:
  type: ruby
  approot: html5

redis:
  type: redis

resque:
  type: ruby-worker
  approot: rails

web:
  type: static
  approot: web

statsd:
  type: nodejs
  approot: statsd
  ports:
    node: udp

Solution

  • Update:

    dotCloud just pushed out a change that reverted the enforcement of no underscores in service names. This should fix your issue, and if you re-push you should be all set for now. I'm not sure how long this will be in place, so if you can rename your service it is best to do it, or else this might happen again in the future.

    There was a change in the dotcloud.yml validation to better standardize the names of the services, and to fix an issue that was caused when service names containing certain characters. It looks like this change is affecting you.

    The error says

    "Invalid characters (lowercase alphanum only)"

    Which means that 'rails_production' is an invalid name because it has an underscore. Try changing that to railsproduction or something similar.

    Also important to note, that this might be a bug, and feel free to contact dotCloud if you can't rename your service easily.